一尘不染

使用 jQuery 滚动到一个元素

javascript

我有这个input元素:

<input type="text" class="textfield" value="" id="subject" name="subject">

然后我有一些其他元素,比如其他文本输入、文本区域等。

当用户点击它input#subject,页面应该滚动到页面的最后一个元素,并带有漂亮的动画。它应该是滚动到底部而不是顶部。

页面的最后一项是一个submit按钮#submit

<input type="submit" class="submit" id="submit" name="submit" value="Ok, Done.">

动画不应该太快,应该是流畅的。

我正在运行最新的 jQuery 版本。我宁愿不安装任何插件,而是使用默认的 jQuery 功能来实现这一点。


阅读 176

收藏
2022-02-06

共1个答案

一尘不染

假设您有一个带有 id 的按钮button,请尝试以下示例:

$("#button").click(function() {
    $([document.documentElement, document.body]).animate({
        scrollTop: $("#elementtoScrollToID").offset().top
    }, 2000);
});

我从文章Smoothly scroll to an element without a jQuery plugin中得到了代码。我已经在下面的示例中对其进行了测试。

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function (){
            $("#click").click(function (){
                $('html, body').animate({
                    scrollTop: $("#div1").offset().top
                }, 2000);
            });
        });
    </script>
    <div id="div1" style="height: 1000px; width 100px">
        Test
    </div>
    <br/>
    <div id="div2" style="height: 1000px; width 100px">
        Test 2
    </div>
    <button id="click">Click me</button>
</html>
2022-02-06