new新的开始
滑动的时候不能保证滑到那个绝对的top值
慕UI8401790
武大神
理解了,不用回答了。。
4955562999
我也是自己查了很久才发现是top的值获取不到,用原来的方法一直0 。也是用的chrome内核。
然后我百度了一下,然后用了 这个
window.pageYOffset; //页面向上滚动的距离
来代替滚动条滚动的距离。
qq_梦里_0
因为你这是一个页面的内容,滚动条滚动的时候并不是点击那个链接,这两个动作不一样,点击那个链接时是访问了那个超链接,所以链接后面会出现#item之类的字符。而滚动条没有访问,所以没有那个#item之类的字符。
Urahara

通过getAttribute('href')获得的是#item1/#item2.。。。。。带有#

通过getAttribute('id')获得的是item1/item2......而不带有#
可以通过.split('#')的方法将#item1分为两个数组,['#','item1']
再用数组中最后一个同currentId进行比较,就能够获得相等的值
如最后一图选中两个部分更改后就可以实现
本人也是初学小白,语言使用比较简单,用错专用术语的还请请见谅!

qq_Say_3
href获取的是一个网址,取最后一个才是我们需要的,具体你再看一遍教程,老师说过的
jazia
哈,试了确实可以。大概是每个人的思维习惯不同吧,老师用他熟悉的方法给我们演示.
蓝蜗牛7788
有一个 hasclass 的判断
NadiaSmile
老师说原生JS里没有removeClass和addClass这个方法,要实现addClass方法的功能,需要构建一个addClass函数,
function addClass(obj,cls){
if (!hasClass(obj,cls)) {
obj.className += " " +cls;
}
然后调用这个函数
if (_href[_href.length-1] != currentId) {
removeClass(_menu,"current");
}else{
addClass(_menu,"current");
蒲公英A月儿
function hasclass(obj,cls){
return obj.className.match(new Regxp("(\\a|^)"+cls+"(\\a|$)"));
}
function removeClass(obj,cls){
if(hasclass(obj,cls)){
var reg=new Regxp("(\\a|^)"+cls+"(\\a|$)")
obj.className=obj.className.relace(reg,"");
}
}
function removeClass(obj,cls){
if(!hasclass(obj,cls)){
obj.className+=""+cls;
}
}
DOMOHAHA
私有变量
sololdw
o轮0回o
var top = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
用这个代替
o轮0回o
if( _href[_href.length-1] != currentId ) {
_menu.className = "" ;
} else {
_menu.className = "current";
}
百度到方法了- -这里因为单个class就这么写- -了忘记了
小光头
zhangxinxin
是的,js可以用 setAttribute('class','className')
枫小白
Rt_加百利
crlyw
crlyw
crlyw