写代码的是WebStorm
测试IE兼任的是IETester
系统推荐来答题,一看又是你,你代码写起来真的好粗心啊。
连class是current的css样式都没写肯定不会有效果啊。
动画效果的代码照着课程上写的,没问题,错误是把currentId写成了currented, currentLink写成了currentink.这种错误,你只要打开chrome调试工具都可以排查出来。
建议你理解了课程内容之后自己写代码,变量命名什么没必要照着教程,用自己的方式来写可能不会这么容易出错。
同是新手,共勉~
最好把html部份也发过来 单是java部份我是没有看出来有什么问题
要计算屏幕高度
bingo!
var items = $('.content').find('div');
你的每个content后面加了数字,换成class="content"就可以了
图片保存的文件夹/图片名.格式 才行
例如 image/nanzhuang.jpg
class
当currentId 为真时,就是currentId ==#item1.2..3...,并且 currentLink.attr("href")!=currentId: currentLink.attr("href")返回带有.current类的A标签的href属性值;如果A标签的href属性值没有#item1.2..3...为真
var top1 = $(document).scrollTop();
jQuery换成这个
https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js
.。。。。。。
visual studio code
改为这个
#menu ul li a.current
这里的hasClass是用来判断元素是否有某个class的,只需要读取需要的值即可。而后面两个方法是用来操作(增加、删除)class的,是需要操作DOM,需要改变值的,所以会有赋值操作。
变量的命名没有特别的讲究,可以有自己的风格。通常变量名前面加下划线,表示这个变量是这个方法中的私有变量。
因为引入的js网址改了,要把http改成https,不然你的js代码都不起作用
<script type="text/css">这不是这样的, <script type="text/javascript">
_this是一个变量,当遍历items时,将每一个item都存储在变量里,这样调用的时候不需要再去遍历。
没有什么大问题,就是在判断(top > itemTop-220)的时候到达不到第三个,把220设大一点就好了。比如500
第一段的那个没有判断
function getByClassName(obj, cls) {
var result = [],
eles = null;
if(!obj) obj = document;
if(obj.getElementsByClassName) {
result = obj.getElementsByClassName(cls);
} else {
eles = obj.getElementsByTagName("*");
for(var i=0; i<eles.length; i++) {
if(eles[i].className.indexOf(cls) != -1){
result.push(eles[i]);
}
}
}
return result;
}
最后的那个addclass应该是逗号
addClass(_menu,"current");
以前的版本用的方案是设置,现在我们直接在楼层的标签中加入锚定位<li><a href="#item1" class="current">1F 男装</a></li>
按着alt,用鼠标选中全部要添加的,就可以只输入一个#,其他的也就有了
hrac百度一下
在里面使用会更好一些。当js很多的时候有时会使用大量相同的变量名,全部使用全局变量不利于后面的扩展。