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

为什么不对?检查半天没找到哪里有问题

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

        }

/*ie6 hack*/

        * html, * html body {

            background-image: url(about:blank);

            background-attachment: fixed;

        }

        * html #menu {

            position: absolute;

            bottom: auto;

            top: expression(100+((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+'px');

        }

    </style>

    

    <script type="text/javascript">

    //根据classname获取元素

        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)){

                var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)");

                obj.className=obj.className.replace(reg,"");

            }

        }

        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=item[i];

                    var _itemtop=item.offsetTop;

                    if(top>_itemtop-200){

                        currentId=_item.id;

                    }else{

                        break;

                    }

                }

                if(currentId){

                    //给正确的a元素加上class

                    for (var i = 0; i < 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>


正在回答

4 回答

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>仿天猫网站导航定位</title>

<style>

* {

            margin: 0;

            padding: 0;

        }

     body{

      padding:0;

      margin:0;

     }

     .wapper{

      width:800px;

      margin:0 auto;

      padding:20px;

     }

     h1{

      color:black;

      font-weight: bold;

      font-size: 24px;

     }

     h2{

      color:black;

      font-weight: bold;

      font-size: 18px;

     }

     .item{

      border: 1px dotted #0088bb;

      padding:10px;

      margin-bottom: 20px;

     }

     .item li{

      display: inline;

      list-style: none;

      margin:20px 0 20px 20px;

     

     }

     img{

      width:230px;

      height:230px;


     }

     hr{

      border:2px solid blue;

      margin-bottom: 10px;

     }

     h1,h2{

      margin-top: 10px;

      margin-bottom: 10px;

     

     }

   

     #nav ul li{

      list-style: none;

     }

     #nav ul li a{


      text-decoration: none;

      font-size: 16px;

      font-weight: bold;

      color:black;

      display: block;

         text-align: center;

         width:60px;

         height:40px;

         line-height: 40px;

         padding:3px;

     }

     #nav{

         position: fixed;

            top: 100px;

            left: 50%;

            margin-left: 400px;


           }

  #nav ul li a:hover,

  #nav ul li a.current{

         color: #fff;

            background: #0088bb;

  }


</style>

</head>

<body>

<div class="wapper">

       <div id="content">

        <h1>天猫购物网</h1>

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

        <h2>1F男装</h2>

        <hr/>

          <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 class="item" id="item2">

          <h2>2F女装</h2>

        <hr/>


          <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 class="item" id="item3">

          <h2>3F彩妆</h2>

        <hr/>

          <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 class="item" id="item4">

          <h2>4F数码</h2>

        <hr/>

          <ul>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

             <li><a herf="#"><img src="4F.png" alt="第一层"></a></li>

          </ul>

         </div>

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

          <h2>5F母婴</h2>

        <hr/>

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

       <div id="nav">

         <ul>

          <li><a href="#item1" class="current">1F男装</a></li>  <!-- 原来我们需要用点击才能实现的功能,现在利用a元素的锚点功能就可以直接实现-->

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

<script type="text/javascript">

     function getByclass(obj,cla){

       var result=[];

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

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

          if (names[i].className==cla){

              result.push(names[i]);

           }

      }

       return result;

     };


     function hasClass(obj,cla){

      return obj.className.match(new RegExp("(\\s|^)"+cla+"(\\s|$)"));

     };


     function removeClass(obj,cla){

      if(hasClass(obj,cla)){

      var reg=new RegExp("(\\s|^)"+cla+"(\\s|$)");

      obj.className=obj.className.replace(reg,"");

      }

     };


     function addClass(obj,cla){

      if(!hasClass(obj,cla)){

      obj.className+= " "+cla;

      }

     }



      window.onload=function(){

        window.onscroll=function(){

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

        var navs=document.getElementById("nav").getElementsByTagName("a");

        var items=getByclass(document.getElementById("content"),"item");

        


        //获取当前楼层的id

        var currentId="";

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

              var _item=items[i];

              var _top=_item.offsetTop;

              if(top>_top-200){

              currentId=_item.id;

                

              }else{

                 break;

              }

        }


           //为目标楼层的nav添加current类

        if(currentId){

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

                 var _nav=navs[j];

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

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

                      removeClass(_nav,"current");

                     //_nav.className="";  不调用这两个函数,直接赋值也可以实现该功能

                 }else{

                  addClass(_nav,"current");

                  // _nav.className="current";

                 }

               }

        }

      }

     }

</script>

</body>

</html>


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

哦,还有一个我最先改的,忘了说,

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

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

你再试下。。。

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

亚特兰大

不是句号,是点,“.”,,,手癌。。。
2016-04-22 回复 有任何疑惑可以回复我~

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

        }

/*ie6 hack*/

        * html, * html body {

            background-image: url(about:blank);

            background-attachment: fixed;

        }

        * html #menu {

            position: absolute;

            bottom: auto;

            top: expression(100+((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+'px');

        }

    </style>

    

    <script type="text/javascript">

    //根据classname获取元素

        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)){

                var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)");

                obj.className=obj.className.replace(reg,"");

            }

        }

        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;

                    }

                }

                if(currentId){

                    //给正确的a元素加上class

                    for (var i = 0; i < 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>


0 回复 有任何疑惑可以回复我~
  1. 根据classname获取元素函数 中,return false;要写在for循环外面才能得到完整的结果。

  2. 这部分代码

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

                        var _item=item[i];  // var _item = items[i];

                       var _itemtop=item.offsetTop;  //var _itemtop = _item.offsetTop;

                        if(top>_itemtop-200){

                            currentId=_item.id;

                        }else{

                            break;

                        }

                    }

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

请叫我橙子蛋 提问者

2个问题都改了好像还是不行
2016-04-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不对?检查半天没找到哪里有问题

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