达不到效果,求解?

来源:6-4 编程练习

西风潇潇

2016-05-19 19:39

代码达不到滚动效果,哪里出问题了?
写回答 关注

2回答

  • rly0606
    2016-06-15 23:01:10
    <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>

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

    星空下的小孩

    replace()的第一个参数是一个正则表达式,第二个参数是要进行替换的字符串

    2016-07-01 09:15:29

    共 1 条回复 >

  • 西风潇潇
    2016-05-19 19:47:53

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

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

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

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

网页定位导航特效

本课程讲解网页定位导航特效,仿天猫版地狗购物网,你值得拥有

71404 学习 · 486 问题

查看课程

相似问题