gpt4 book ai didi

javascript - 逐渐滚动 mousedown 直到 mouseup

转载 作者:搜寻专家 更新时间:2023-11-01 04:22:48 25 4
gpt4 key购买 nike

如何在 position: fixed 元素上按下鼠标按钮时让视口(viewport)逐渐向下滚动?

最佳答案

在这里,您可以使用 jQuery.animate() 结合 setTimeout()clearTimeout() 来完成此操作:

$('.button').on('mousedown', function() {
console.log('Start Animate');
(function smoothSrcroll() {
console.log(Math.max($('html').scrollTop(), $('body').scrollTop()));
$('html, body').stop().animate({
scrollTop: Math.max($('html').scrollTop(), $('body').scrollTop()) + 100
}, 1000, 'linear', function() {
window.timeout = setTimeout(smoothSrcroll(), 0);
});
})();
}).on('mouseup', function() {
console.log('Stop Animate');
$('html, body').stop();
clearTimeout(window.timeout);
});

CodePen Demo

我的目标是 $('html, body') 以便它可以在 Firefox 和 Chrome 中运行。这有点棘手,因为 animate() 实际上因为有两个选择器而运行了两次。为了解决这个问题,我使用了 jQuery.stop() 。由于 Firefox 可以使用 $('html').scrollTop() 而 Chrome 使用 $('body').scrollTop(),我使用 Math.max() 计算增量.该函数在完成后自动执行,并在释放鼠标时使用 clearTimeout()jQuery.stop()

关于javascript - 逐渐滚动 mousedown 直到 mouseup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40776224/

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