jQuery滚动到元素

我有这个input元素:

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

然后我还有一些其他元素,如其他文本输入,textareas等。

当用户用#subject单击该input时,页面应该以良好的动画滚动到页面的最后一个元素。 它应该是一个滚动到底部而不是顶部。

该页面的最后一个项目是一个submit按钮,其中包含#submit

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

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

我正在运行最新的jQuery版本。 我更喜欢不安装任何插件,而是使用默认的jQuery功能来实现此目的。


假设你有一个带有id button ,试试这个例子:

$("#button").click(function() {
    $('html, body').animate({
        scrollTop: $("#elementtoScrollToID").offset().top
    }, 2000);
});

我从文章中得到了代码顺利滚动到没有jQuery插件的元素。 我已经在下面的例子中对它进行了测试。

<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>

jQuery .scrollTo()方法

jQuery .scrollTo():查看 - 演示,API,来源

我写了这个轻量级的插件,使页面/元素滚动更容易。 它可以灵活地传递目标元素或指定值。 也许这可能是jQuery下一个正式版本的一部分,你怎么看?


示例用法:

$('body').scrollTo('#target'); // Scroll screen to target element

$('body').scrollTo(500); // Scroll screen 500 pixels down

$('#scrollable').scrollTo(100); // Scroll individual element 100 pixels down

选项:

scrollTarget:指示期望滚动位置的元素,字符串或数字。

offsetTop:定义滚动目标上方的附加间距的数字。

持续时间:决定动画运行时间的字符串或数字。

easing:一个字符串,指示用于转换的缓动函数。

完成:动画完成后调用的函数。


如果您对平滑滚动效果不太感兴趣,并且只想滚动到特定元素,则不需要使用某种jQuery函数。 Javascript已涵盖您的案例:

https://developer.mozilla.org/en-US/docs/Web/API/element.scrollIntoView

所以你需要做的是: $("selector").get(0).scrollIntoView();

.get(0)是因为我们想要检索JavaScript的DOM元素而不是JQuery的DOM元素。

链接地址: http://www.djcxy.com/p/533.html

上一篇: jQuery scroll to element

下一篇: Disable/enable an input with jQuery?