问答详情
源自:4-3 使用jQuery实现网页定位导航(下)

我的代码不知道为什么运行不了,用的jq库是http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js

$(document).ready(function(){
	$(window).scroll(function(){
		var top = $(document).scrollTop();
		var menu = $('#menu');
		var items = $('#content').find('.item');
		var currentId = '';
		items.each(function(){
			var m = $(this);
			var itemTop = m.offset().top;
			if (top > itemTop) {
				currentId = "#"+ m.attr("id");
			}else{
				return false;
			}
		});
		var currentLink = menu.find(".current");
		if(currentId && currentLink.attr("href") != currentId){
			currentLink.removeClass("current");
			menu.find("[href="+currentId+"]").addClass("current");
		}
	});
});


提问者:苍白的尾巴 2016-07-21 10:10

个回答

  • 磅礴
    2016-07-21 17:16:52
    已采纳

    内部。
    这是把你的复制过来的全部代码,包括JQ库也是你说的那个

    <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <meta http-equiv="content-type" content="text/html" >

        <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 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 li a{

                display: block;

                margin: 5px 0;

                font-size: 14px;

                color: #333;

                width: 80px;

                height: 50px;

                line-height: 50px;

                text-decoration: none;

                font-weight: bold;

                text-align: center;

            }

            #menu ul li a:hover,#menu ul li a.current{

                color: #fff;

                background-color: #0088bb;

            }

        </style>

        <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

        <script>

            $(document).ready(function(){

                $(window).scroll(function(){

                    var top = $(document).scrollTop();

                    var menu = $('#menu');

                    var items = $('#content').find('.item');

                    var currentId = '';

                    items.each(function(){

                        var m = $(this);

                        var itemTop = m.offset().top;

                        if (top > itemTop) {

                            currentId = "#"+ m.attr("id");

                        }else{

                            return false;

                        }

                    });

                    var currentLink = menu.find(".current");

                    if(currentId && currentLink.attr("href") != currentId){

                        currentLink.removeClass("current");

                        menu.find("[href="+currentId+"]").addClass("current");

                    }

                });

            });

        </script>

    </head>

    <body>

    <div id="menu">

        <ul>

            <li><a href="#item1">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">

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

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

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

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

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


  • 追觅梦初的国度
    2016-07-31 12:54:13

      menu.find("[href="+currentId+"]").addClass("current");

    你这里出问题了,正确的是这样的

      menu.find("[href='"+currentId+"']").addClass("current");

    在currentId两边是需要单引号的。

  • 磅礴
    2016-07-21 15:21:04

    代码和JQ库都没有问题,这里if (top > itemTop - 200)要这么写,你再试试!