• 如何用jquery实现点击后跳到页面指定位置


    很多网站都有这种功能,主要为了让用户在长篇大论中比较迅速的跳到自己想要看的内容处,比如bootstrap就有相应的功能。

    介绍一种非常简便可以实现这种功能的方式。

    思路:1.这里要用到点击事件,因为点击处可能数量较多,因此最好用事件代理来处理,可以提高性能。

    2.当点击一个按钮时,能够获取到与他相对应的元素的ID。

    3.通过jquery的offset方法返回top和left两个属性后获取他的top属性。

    4.用animate方法改变html的scrollTop属性,值为上面的top属性值。

    以下是代码:

    <!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>
    </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}, 800);
            });
        </script>
    </body>
    </html>

    页面截图:

    点击左边的数字,页面会跳到数字对应的位置,感觉就像坐电梯一样。

  • 相关阅读:
    单页面应用和多页面应用区别及优缺点
    Vue中双向数据绑定是如何实现的?
    vue组件中data为什么必须是一个函数?
    $nextTick的使用
    分别简述computed和watch的使用场景
    webpack结合postcss-loader实现css样式浏览器兼容前缀的添加
    KeyError:‘uid' Python常见错误
    GO语言学习之 跨平台编译
    图表动态选择+图表联动
    软件需求与分析大作业进度八
  • 原文地址:https://www.cnblogs.com/yxyblogs/p/5050522.html
Copyright © 2020-2023  润新知