gpt4 book ai didi

javascript自动滚动到顶部,除非用户开始滚动

转载 作者:行者123 更新时间:2023-12-01 01:47:52 27 4
gpt4 key购买 nike

我想自动滚动到顶部,但如果用户开始滚动则退出。

我目前所拥有的过早停止动画,因为滚动动画本身正在滚动 - 因此它会触发“如果滚动发生则停止滚动”操作。

function stop_scrolling_to_top(){
// stop animation attached to selector
$('html, body').stop();
}

// scroll to the top automatically
$('html, body').animate({ scrollTop: 0}, 1400, "easeOutQuint", function(){
// callback when animation complete
do_not_do_when_scrolling(stop_scrolling_to_top);
});

// stop animation if scrolling starts
do_when_scrolling(stop_scrolling_to_top);

有没有办法判断滚动是人触发的还是js触发的?有没有更好的方法?

最佳答案

希望这会有所帮助。

它监听鼠标滚轮事件+可用于在页面上滚动的键(向上/向下翻页、空格键、箭头键等):

$(document).keyup(function(e){

if($.inArray(e.which, [33,34,32,38,40]) !== -1)
console.log('key');
//potential scroll by key

});

$(document).bind((/Firefox/i.test(navigator.userAgent))
? 'DOMMouseScroll'
: 'mousewheel', function(e){

var evt = window.event || e;
evt = evt.originalEvent ? evt.originalEvent : evt;
var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta;

if(delta > 0)
console.log('mousewheel up');
//scroll up
else
console.log('mousewheel down');
//scroll down
});

如果您发现“您的”滚动处于事件状态,请像上面那样停止它:

if($('html, body').is(':animated'))
$('html, body').stop();

http://jsfiddle.net/MQQ3F/1/

关于javascript自动滚动到顶部,除非用户开始滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745445/

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