【发布时间】:2014-06-21 20:25:42
【问题描述】:
我正在尝试在我的网站 udowalzfinal.umatechcorner.com 中引入类似 hugeinc.com 的效果
我做了以下
$(window).on({
'DOMMouseScroll mousewheel': ScrollBegin
});
var delta = 0;
var scrollThreshold = 10;
function ScrollBegin(e) {
// --- Scrolling up ---
if (e.originalEvent.detail < 0 || e.originalEvent.wheelDelta > 0) {
delta--;
console.log(delta);
if ( Math.abs(delta) >= scrollThreshold) {
timer = setTimeout(function () {
MoveScreen('up');
}, 800);
clearTimeout(timer);
}
}
// --- Scrolling down ---
else {
delta++;
console.log(delta);
if (delta >= scrollThreshold) {
timer = setTimeout(function () {
MoveScreen('down');
clearTimeout(timer);
}, 800);
}
}
// Prevent page from scrolling
return false;
}
我不知道为 scrollThreshold 设置什么值。
mousewheel 事件被引发并 ScrollBegin 被执行。但这在 IE 中太慢了,而在带有 Apple Mouse 的 Safari 中太快了。
每次鼠标滚轮移动都会引发鼠标滚轮事件。就我而言,当我滚动一次鼠标滚轮时,它会引发 10 次事件。我怎样才能禁用这 9 个事件并且只处理一次。
How to get a MouseWheel Event to fire only once in jQuery? 文章没有解决我的问题。这仅支持向上移动一次然后向下移动一次。但我的页面中有 5 张幻灯片。
有人可以帮忙吗?
【问题讨论】:
-
嗨瑞秋,谢谢你的网址。 nicescroll 不适合我的情况,因为我想展示类似幻灯片的内容。另一个链接也没有帮助。
-
哦,好吧。只是想我会尝试。如果您正在寻找画廊示例,请访问我的画廊busyfeet.rachelgallen.com/gallery.html
标签: javascript jquery mousewheel