jQuery 跳转到页面指定元素

主要是利用$("html,body").animate({scrollTop:$("#" + id).offset().top}, 800);,参数800是动画持续时长。但是这样会让元素处于页面最上方,要使元素居中可以完善为$('html,body').animate({scrollTop:$('#'+id).offset().top-$(window).height() * 0.5+$('#'+id).height()*0.5}, 800);,这样就会在跳转到到元素时使其上下居中。示例代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>点击返回指定位置</title>
    <style>
        #nav{
            position: fixed;
            left:0;
            top:10px;
        }
        #nav li{
            width:50px;
            height:30px;
            font:bold 20px/30px simhei;
            text-align: center;
            list-style-type: none;
            background:#333;
            color:#fff;
            margin:10px 0;
            cursor: pointer;s
        }
        #list li{
            width:50%;
            height:300px;
            text-align: center;
            font:bold 100px/300px simhei;
            list-style-type: none;
            background:yellow;
            color:blue;
            margin:50px 200px;
        }
    </style>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
    <ul id="nav">
        <li data-to="go1">1</li>
        <li data-to="go2">2</li>
        <li data-to="go3">3</li>
        <li data-to="go4">4</li>
        <li data-to="go5">5</li>
        <li data-to="go6">6</li>
        <li data-to="go7">7</li>
        <li data-to="go8">8</li>
        <li data-to="go9">9</li>
        <li data-to="go10">10</li>
        <li data-to="go11">11</li>
        <li data-to="go12">12</li>
        <li data-to="go13">13</li>
    </ul>
    <ul id="list">
        <li id="go1">1</li>
        <li id="go2">2</li>
        <li id="go3">3</li>
        <li id="go4">4</li>
        <li id="go5">5</li>
        <li id="go6">6</li>
        <li id="go7">7</li>
        <li id="go8">8</li>
        <li id="go9">9</li>
        <li id="go10">10</li>
        <li id="go11">11</li>
        <li id="go12">12</li>
        <li id="go13">13</li>
    </ul>
    <script src="jquery.min.js"></script>
    <script>
        $('#nav').on('click','li',function(e){
            var target = e.target;
            var id = $(target).data("to");
            $('html,body').animate({scrollTop:$('#'+id).offset().top-$(window).height() * 0.5+$('#'+id).height()*0.5}, 300);
        });
    </script>
</body>
</html>

未经允许不得转载:鹞之神乐 » jQuery 跳转到页面指定元素

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏