求告知错在哪里了

来源:6-4 编程练习

Aurora丶

2015-08-01 01:13

	<script type="text/javascript">

	function hasClass( obj, cls ){ 
	    return obj.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)"));
	}
	
	function removeClass( obj, cls ){ 
	    if( hasClass( obj, cls )){ 
		    //remove
			var reg = new RegExp("(\\s|^)" + cls + "(\\s|$)");
			obj.className = obj.className.replace(reg, "");
		}
	}
   
    //定义getByClassName函数,让函数实现给对象增加class 
    function addClass(obj, cls){
        if(!hasClass(obj, cls)){
            obj.className += " " + cls;
        }
    }

	function getByClassName(obj , cls){
		var elements = document.getElementsByTagName('*');
		var result = [];
		for (var i = 0; i < elements.length; i++) {
			if (elements[i].className == cls) {
				result.push(elements[i]);
			};
		};
	}

	window.onload = function(){
		window.onscroll = function(){
			var top = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
			 /*兼容IE浏览器*/
			var menu = document.getElementById('menu').document.getElementsByTagName('a');

			var items = getByClassName(document.getElementById('content'),'item');

			var currentId = "";

			for (var i = 0; i < items.length; i++) {
				var _item = items[i];
				var _itemTop = _item.offsetTop;
				if ( top > _itemTop -200) {
					currentId = _itemTop;
				}else{
					break;
				}
			}

			if (currentId) {
				for(var j = 0 ; j < menu.length ; j++){
					var _menu = menu[j];
					var _href = _menu.herf.split("#");

					if (_href[_href.length - 1] != currentId) {
						removeClass(_menu,"current");
					}else{
						addClass(_menu,"current");
					};
				}
			};
		}
	}
	</script>


写回答 关注

3回答

  • 慕运维2603834
    2015-12-06 19:46:00

    第47行写错了改为currentId = _item.id;

  • Bang丶
    2015-10-30 04:04:10

    document.documentElement.scrollTop || document.body.scrollTop;

  • 达尔之心
    2015-09-20 11:43:55

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

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

    零下的夏天

    想问下为什么要这样,谷歌不支持吗

    2015-10-09 11:42:42

    共 1 条回复 >

网页定位导航特效

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

71404 学习 · 486 问题

查看课程

相似问题