Fullpage.js 当 return 在所有浏览器中为 false 但 Chrome 时 OnLeave 触发两次
Fullpage.js OnLeave firing twice when return false in all browsers but Chrome
我有这个代码:
$('#fullpage').fullpage({
scrollingSpeed: 500,
onLeave: function(index, nextIndex, direction){
if(nextIndex == 2){
alert('test');
return false;
}
}
});
在 Chrome 中警报出现一次,但在 Firefox 和 IE 中似乎出现两次。如果能深入了解为什么会发生这种情况,我们将不胜感激!
这是 fiddle:http://jsfiddle.net/97tbk/856/
谢谢!
这似乎是 fullPage.js 中的一个错误,与它处理鼠标事件的方式有关:
function addMouseWheelHandler() {
if (document.addEventListener) {
document.addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
document.addEventListener('wheel', MouseWheelHandler, false); //Firefox
// [[[[[[[ THE ISSUE IS HERE ]]]]]]]
document.addEventListener('DOMMouseScroll', MouseWheelHandler, false); //Old Firefox
} else {
document.attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8
}
}
Firefox 似乎正在监听 wheel
和 DOMMouseScroll
这两个事件。你可以检查一下here。
尝试删除 "Old firefox" 事件处理程序 (DOMMouseScroll
),您将看到它现在如何只触发一个。
欢迎提出问题in fullpage.js repository 报告。
我有这个代码:
$('#fullpage').fullpage({
scrollingSpeed: 500,
onLeave: function(index, nextIndex, direction){
if(nextIndex == 2){
alert('test');
return false;
}
}
});
在 Chrome 中警报出现一次,但在 Firefox 和 IE 中似乎出现两次。如果能深入了解为什么会发生这种情况,我们将不胜感激!
这是 fiddle:http://jsfiddle.net/97tbk/856/
谢谢!
这似乎是 fullPage.js 中的一个错误,与它处理鼠标事件的方式有关:
function addMouseWheelHandler() {
if (document.addEventListener) {
document.addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
document.addEventListener('wheel', MouseWheelHandler, false); //Firefox
// [[[[[[[ THE ISSUE IS HERE ]]]]]]]
document.addEventListener('DOMMouseScroll', MouseWheelHandler, false); //Old Firefox
} else {
document.attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8
}
}
Firefox 似乎正在监听 wheel
和 DOMMouseScroll
这两个事件。你可以检查一下here。
尝试删除 "Old firefox" 事件处理程序 (DOMMouseScroll
),您将看到它现在如何只触发一个。
欢迎提出问题in fullpage.js repository 报告。