问答详情
源自:6-4 编程练习

对照老师的代码写的竟然都没有效果,什么情况??请教大家帮助不对之处

<!doctype html>

<html>

<head>

    <meta charset="UTF-8">

    <title>地狗购物网-网页定位导航效果</title>

    <style>

        * {

            margin: 0;

            padding: 0;

        }


        body {

            font-size: 12px;

            line-height: 1.7;

        }


        li {

            list-style: none;

        }


        #content {

            width: 800px;

            margin: 0 auto;

            padding: 20px;

        }


        #content h1 {

            color: #0088bb;

        }


        #content .item {

            padding: 20px;

            margin-bottom: 20px;

            border: 1px dotted #0088bb;

        }


        #content .item h2 {

            font-size: 16px;

            font-weight: bold;

            border-bottom: 2px solid #0088bb;

            margin-bottom: 10px;

        }


        #content .item li {

            display: inline;

            margin-right: 10px;

        }


        #content .item li a img {

            width: 230px;

            height: 230px;

            border: none;

        }


        #menu {

            position: fixed;

            top: 100px;

            left: 50%;

            margin-left: 400px;

            width: 50px;

        }


        #menu ul li a {

            display: block;

            margin: 5px 0;

            font-size: 14px;

            font-weight: bold;

            color: #333;

            width: 80px;

            height: 50px;

            line-height: 50px;

            text-decoration: none;

            text-align: center;

        }


        #menu ul li a:hover,

        #menu ul li a.current {

            color: #fff;

            background: #0088bb;

        }


*html,*html body{

background-image:url(about;blank);

background-attachment:fixed;

}

        *html #menu{ position:absolute; top:expression(((e:document.documentElement.scrollTop)?e:document.body.scrollTop) + 200+'px')}

    </style>

    <script>

 //定义getByClassName函数,让函数实现根据class name获取对象并返回

 function getByClassName(obj,cls){

 var elements=obj.getElementsByTagName("*");

 var result=[];

 for(var i=0; i<elements.length; i++){

 if(elements[i].ClassName==cls){

 result.push(element[i]);

 }

 }

 return result;

 

 };

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;

}

}

window.onload = function(){ 

window.onscroll = function(){

var top = document.documentElement.scrollTop || document.body.scrollTop;

var menus = document.getElementById("menu").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 = _item.id;

} else { 

break;

}

}

 //请补充此处代码,给正确的menu下的a元素class赋值current

 if(currentId){

 for(var j=0;j<menus.length;i++){

 var _menu=menus[i];

 var _href=_menu.href.split("#");

 if(_href[_href.length-1]!=currentId){

 removeClass(_menu,"current");

 }

 else{

 addClass(_menu,"current");

 }

 }

 }

}

}

</script>

</head>

<body>

<div id="menu">

    <ul>

        <li><a href="#item1" class="current">1F 男装</a></li>

        <li><a href="#item2">2F 女装</a></li>

        <li><a href="#item3">3F 美妆</a></li>

        <li><a href="#item4">4F 数码</a></li>

        <li><a href="#item5">5F 母婴</a></li>

    </ul>

</div>

<div id="content">

    <h1>地狗购物网</h1>


    <div id="item1" class="item">

        <h2>1F 男装</h2>


        <ul>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/1F.jpg" alt=""/></a></li>

        </ul>

    </div>

    <div id="item2" class="item">

        <h2>2F 女装</h2>

        <ul>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/2F.jpg" alt=""/></a></li>

        </ul>

    </div>

    <div id="item3" class="item">

        <h2>3F 美妆</h2>


        <ul>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/3F.jpg" alt=""/></a></li>

        </ul>

    </div>

    <div id="item4" class="item">

        <h2>4F 数码</h2>


        <ul>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

            <li><a href="#"><img src="源代码/4F.png" alt=""/></a></li>

        </ul>

    </div>

    <div id="item5" class="item">

        <h2>5F 母婴</h2>


        <ul>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

            <li><a href="#"><img src="源代码/5F.jpg" alt=""/></a></li>

        </ul>

    </div>

</div>


</body>

</html>


提问者:火星上的慕老爷 2015-07-20 17:47

个回答

  • 谷陵_
    2016-01-12 18:12:58

    第一个问题:result.push(element[i]);  你这里应该是elements[i]  少了一个s

    第二个问题:elements[i].ClassName==cls 你这里的ClassName里的C应该小写

    第三个问题:【 //请补充此处代码,给正确的menu下的a元素class赋值current】这个注释下面的for循环里,请将错误的参数 i 改成 j 

    将这三个问题改一下,应该就效果就会出来了。

    希望能帮助呢。

  • 湮阳
    2015-12-30 10:52:36

    //请补充此处代码,给正确的menu下的a元素class赋值current

     if(currentId){

     for(var j=0;j<menus.length;i++){

     var _menu=menus[i];

     var _href=_menu.href.split("#");

     if(_href[_href.length-1]!=currentId){

     removeClass(_menu,"current");

     }

     这里面的i和j 你搞乱了 

  • 小茗童鞋
    2015-08-06 16:44:42

    你看看是不是有一些最后的符号啊什么的搞错了。