gpt4 book ai didi

javascript - 相对于当前位置滚动 Jquery

转载 作者:行者123 更新时间:2023-11-29 18:22:24 24 4
gpt4 key购买 nike

当使用 jquery 单击一个元素时,我试图相对于当前位置滚动一个 div。但它必须在 3000 毫秒后滚动,所以试图延迟它。现在它在点击后立即相对于顶部滚动 300 像素。如果我再次点击没有任何反应。

这是目前的代码:

$('#scroll').click(function(){              
$('.vluchtelinginfo').delay(3000).scrollTop(+300);
});

感谢您的帮助。

最佳答案

Brad M 关于使用 setTimeout 的建议是获得所需内容的一种方法。 scrollTop() 不在 jQuery 提供的“效果”中,因此不会受到 delay() 的影响,因为 delay()只影响效果。

但是,可以使用 animate() 来制作滚动效果,例如以下内容应该为滚动设置动画:

$scrollable.animate({scrollTop: x});

既然animate()是一个“效果”,它应该会受到delay()的影响。所以你可以这样做:

$scrollable.delay(3000).animate({scrollTop: x});

但是,您遇到了另一个问题:当调用 scrollTop(x) 时,x 是一个绝对值,而不是 < em>亲戚。调用 scrollTop(+300) 与调用 scrollTop(300) 完全相同。 + 符号在该上下文中没有特殊含义。如果你想让你的滚动是相对的,那么你需要先得到以前的 scrollTop 值并添加到它你想要滚动的相对距离。例如,

$scrollable.delay(3000).animate({scrollTop: $scrollable.scrollTop() + 300});

fiddle将上述原则付诸实践。

关于javascript - 相对于当前位置滚动 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com