请大神帮忙看一下代码问题出在哪

来源:6-4 编程练习

第二热情

2016-09-09 00:42

字数不够 ,我把后面的HTML删了    

<!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: 80px;

        }


        #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;

        }


        /*ie6 hack*/

        * html, * html body {

            background-image: url(about:blank);

            background-attachment: fixed;

        }


        * html #menu {

            /*position: fixed;*/

            position: absolute;

            top: expression(((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+100+'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(elements[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;

        //     }

        // }


//zhengque

        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(elements[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 ? 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; j++){

                //         var _menu = menus[j];

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

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

                //             removeClass(_menu, "current");

                //         } else {

                //             addClass(_menu, "current");

                //         }

                //     }

                // }

                

                //zhengque

                if( currentId){

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

                        var _menu = menus[j];

                        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>

写回答 关注

2回答

  • _TimChen
    2016-10-06 16:50:28

    document.documentElement? document.documentElement.scrollTop : document.body.scrollTop;

    此处代码错误


  • 一直都在路上
    2016-09-12 20:51:40

    没看出来有什么问题,你放到编辑器里面看看,console.log 看看控制台 或者alert 调试看看,希望能帮到你 ,我也是新手

网页定位导航特效

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

71404 学习 · 486 问题

查看课程

相似问题