окно.события scroll дважды вызывать
независимо от того, какой метод я использую для обнаружения прокрутки на странице, событие запускается дважды. См. код для различных методов, которые я пробовал.
<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?");
}
Я даже пробовал использовать $.дребезга.
в случае, если это имеет какую-либо пользу, я объясню, что я пытаюсь сделать: Когда пользователь прокручивает колесо вверх или вниз, страница будет анимировать прокрутку до следующего div содержимого полной ширины. У меня есть код это успешно делает этот onclick моего меню, но я также хотел бы, чтобы это произошло, когда пользователь прокручивает, по существу, автоматически помогает им прокручивать каждую часть моей страницы. Это функция, которую я в настоящее время имею для прокрутки:
function scrollTo(id){
// Scroll
$('html,body').animate({scrollTop: $("#"+id).offset().top - 110},'slow',function(){
animation_active = "false";
});
}
1 ответов
многие устройства могут инициировать события прокрутки, которые, как представляется, происходят еще раз часто. просто используйте тайм-аут для этого:
var timeout;
$(window).scroll(function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
// do your stuff
}, 50);
});
вы можете играть со значением 50, то я рекомендую что-то между 50 и 150.