一尘不染

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功能来实现此目的。


阅读 1118

收藏
2020-04-22

共1个答案

一尘不染

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

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

我已经在下面的示例中对其进行了测试。

<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>
2020-04-22