为了账号安全,请及时绑定邮箱和手机立即绑定

达不到效果,求解?

代码达不到滚动效果,哪里出问题了?

正在回答

2 回答

<script type="text/javascript">
	function getElementByClass(obj,clas){
		var all=obj.getElementsByTagName("*");
		var result=[];
		for(var i=0,length=all.length;i<length;i++){
			if(all[i].className==clas){
				result.push(all[i]);
			}
		}
		return result;
	}
	function hasClass(obj,clas){
		return (obj.className.search(clas)==-1)?false:true;
	}
	function addClass(obj,clas){
		if(!hasClass(obj,clas)){
			obj.className+=" "+clas;
		}
	}
	function deleteClass(obj,clas){
		if(hasClass(obj,clas)){
			obj.className.replace(clas," ");
		}
	}
	window.onload=function(){
		window.onscroll=function(){
			var scrollTop=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;
			var menu=document.getElementById("menu").getElementsByTagName("a");
			var items=getElementByClass(document.getElementById("content"),"item");
			var currentId='';
			for(var i=0,length1=items.length;i<length1;i++){
				var top=items[i].offsetTop;
				if(scrollTop>top-300){
					currentId="#"+items[i].getAttribute("id");
				}
				else{
					break;
				}
			}
			if(currentId){
				//为menu设置正确的样式
				for (var i = 0,length2=menu.length; i<length2; i++) {
					//如果href等于当前的id,则添加样式
					var href=menu[i].getAttribute("href");
					if(href==currentId){
						addClass(menu[i],"current");
					}
					//否则,删除样式
					else{
						deleteClass(menu[i],"current");
					}
				}
			}
		}
	}
	</script>

求帮忙看下为什么我的样式删除不了?

0 回复 有任何疑惑可以回复我~
#1

星空下的小孩

replace()的第一个参数是一个正则表达式,第二个参数是要进行替换的字符串
2016-07-01 回复 有任何疑惑可以回复我~

看了小伙伴们的问答,终于发现问题所在了:

 var top=document.documentElement?document.documentElement.scrollTop:document.body.scrollTop;

上面的运算是错误的,改为下面的代码,就OK了:

 var top=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;
1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

达不到效果,求解?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信