gpt4 book ai didi

javascript - window.scroll 事件触发两次

转载 作者:可可西里 更新时间:2023-11-01 02:05:49 27 4
gpt4 key购买 nike

无论我使用什么方法检测页面上的滚动,事件都会触发两次。请查看我尝试过的不同方法的代码。

<body onmousewheel="alert('Why are you alerting twice?')">

<script src="js/jquery-1.8.3.min.js"></script>
<script>
$(window).scroll(function(){
alert("Why are you alerting twice?");
});
</script>

window.onscroll = please_scroll;

function please_scroll() {
alert("Why are you alerting twice?");
}

我什至尝试过使用 $.debounce。

如果它有任何用处,我将解释我正在尝试做的事情:当用户向上或向下滚动滚轮时,页面将动画滚动到下一个全宽内容 div。我有代码可以成功地点击我的菜单,但我也希望它在用户滚动时发生,本质上是自动帮助他们滚动到我页面的每个部分。这是我目前用于滚动的功能:

function scrollTo(id){
// Scroll
$('html,body').animate({scrollTop: $("#"+id).offset().top - 110},'slow',function(){
animation_active = "false";
});
}

最佳答案

许多设备都可以触发滚动事件,这些事件似乎会更频繁地发生一次。只需为此使用超时:

var timeout;

$(window).scroll(function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
// do your stuff
}, 50);
});

你可以玩 50 的值,我建议在 50 到 150 之间。

关于javascript - window.scroll 事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018348/

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