0

我正在使用鼠标滚轮事件。我想要功能“开始”和“停止”之类的东西。start 函数将在鼠标滚轮启动时执行,而 stop 函数将在鼠标滚轮停止时执行?

jquery的鼠标滚轮事件中是否有任何回调函数?

var matched = jQuery.uaMatch(navigator.userAgent);
var eventName = matched.browser.toLowerCase() == "mozilla" ? "DOMMouseScroll" : "mousewheel";  
$(this.element).on(eventName, this.chartMouseWheel);



  chartMouseWheel:function()
{

 start:
{
},
stop:
{
},

}

鼠标滚轮启动时我需要做一些操作,鼠标滚轮结束时我需要做一些其他操作吗?

我怎样才能做到这一点 ?

谢谢,

湿婆

4

2 回答 2

2

在这里可以看到如何上下拦截鼠标滚轮:http: //jsfiddle.net/ykv5S/9/

代码:

$('#test').bind('mousewheel', function(event, delta) {
    var dir = delta > 0 ? 'Up' : 'Down';
    $("#output").html(dir)
});

现在我认为您需要添加一些步骤来了解鼠标速度并获取何时为 == 0


在 SO 上发现了一个类似的问题:看看这里,也许有用:

jquery mousewheel:检测滚轮何时停止?

于 2013-05-31T09:36:08.770 回答
1

jQuery 中没有直接的功能。

这就是我使用的:

window.addEventListener("mousewheel", mousewheel, false); // chrome
window.addEventListener("DOMMouseScroll", mousewheel, false); // firefox

mousewheel是函数的名称)

如果您希望仅在鼠标指针位于元素上时处理滚轮,请执行以下操作:

$myElement.mouseenter(function() {
    window.addEventListener("mousewheel", mousewheel, false); // chrome
    window.addEventListener("DOMMouseScroll", mousewheel, false); // firefox
}).mouseleave(function() {
    window.removeEventListener("mousewheel", mousewheel, false);// chrome
    window.removeEventListener("DOMMouseScroll", mousewheel, false);// firefox
});

示范

于 2013-05-31T09:31:40.750 回答