繁体   English   中英

在android中单击时,jquery滚动到div的顶部

[英]jquery scroll to the top of a div on click in android

我有一个与溢出设置为滚动和按钮不同的按钮,单击该按钮将滚动回到顶部。

<!DOCTYPE html>
<html>
    <head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
    <meta charset="utf-8">
    <style>
        .pages{
            position:absolute;
            top:30px;
            bottom:0px;
            left:0px;
            right:0px;
            border:0;
            overflow:scroll;
        }

        .pages div{
            position:relative;
            width:100%;
            height:300px;
            border:solid 1px #CDCDCD;
            border-top-style:none;
            border-left-style:none;
            border-right-style:none;
        }
    </style>
    <script>
        $(document).ready(function(e) {
            $('#new_pages').click(function(event){
                event.preventDefault();
                //add new page data
                //scroll to top
                $('#mag_pages').animate({
                    scrollTop:0
                    },900);

            });
        });
    </script>
</head>
<body>
    <div class="new_pages" id="new_pages">
            <div id="count">10+</div>
            <div id="text">New Pages</div>
        </div>
    <div class="pages" id="mag_pages">
           <div>Page 1</div>
           <div>Page 2</div>
           <div>Page 3</div>
           <div>Page 4</div>
           <div>Page 5</div>
    </div>
</body>
</html>

经过一番谷歌搜索后,我仍然没有进一步的前进。 scrollTop:0是所有帖子所说的。 无论动画还是不适合我。 是否有另一种方法可以实现这一目标。 当我在移动设备上测试滚动功能不起作用时,该代码在计算机上可以正常工作。 手机的定位必须不同吗?

也许JQuery滚动或动画功能在移动设备中存在一些问题。

尝试使用纯JS,而不是JQuery:

<!DOCTYPE html>
<html>
    <head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
    <meta charset="utf-8">
    <style>
        .pages{
            position:absolute;
            top:30px;
            bottom:0px;
            left:0px;
            right:0px;
            border:0;
            overflow:scroll;
        }

        .pages div{
            position:relative;
            width:100%;
            height:300px;
            border:solid 1px #CDCDCD;
            border-top-style:none;
            border-left-style:none;
            border-right-style:none;
        }
    </style>
    <script>
        function newPagesClicked(){
             //add new page data
             //scroll to top
             scrollToTop
        }
        function scrollToTop(scrollDuration) {
            var scrollStep = -window.scrollY / (scrollDuration / 15),
            scrollInterval = setInterval(function(){
                if ( window.scrollY != 0 ) {
                    window.scrollBy( 0, scrollStep );
                }
                else clearInterval(scrollInterval); 
           },15);
        }
    </script>
</head>
<body>
    <div class="new_pages" onclick="newPagesClicked()" id="new_pages">
            <div id="count">10+</div>
            <div id="text">New Pages</div>
        </div>
    <div class="pages" id="mag_pages">
           <div>Page 1</div>
           <div>Page 2</div>
           <div>Page 3</div>
           <div>Page 4</div>
           <div>Page 5</div>
    </div>
</body>
</html>

我在我的一个项目中使用了这样的代码,并且可以正常工作,请尝试如下修改代码:

$(document).ready(function(e) {
    $('#new_pages').click(function(event){
        event.preventDefault();
        //add new page data
        //scroll to top
        $('html, body').animate({
            scrollTop:$('#mag_pages').offset().top
            },900);

    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM