0

隠されたオーバーフローを持つボディで「マウスホイール」イベントをキャッチするにはどうすればよいですか?

私はすでにこれを試しましたが、私の場合はうまくいきません。

4

1 に答える 1

0

jQuery マウスホイール プラグインを使用できます。

編集:これが私のプラグインのコードです:

var self = this;
var scroll_object;

if (!navigator.userAgent.toLowerCase().match(/(webkit)[ \/]([\w.]+)/) &&
    self[0].tagName.toLowerCase() == 'body') {
    scroll_object = $('html');
} else {
    scroll_object = self;
}
...
self = $.extend(self, {
    scroll: function(amount) {
        var pos;
        amount = Math.round(amount);
        if (scroll_object.prop) {
            if (amount > scroll_object.prop('scrollTop') && amount > 0) {
                scroll_object.prop('scrollTop', 0);
            }
            pos = scroll_object.prop('scrollTop');
            scroll_object.scrollTop(pos + amount);
            return self;
        } else {
            if (amount > scroll_object.attr('scrollTop') && amount > 0) {
                scroll_object.attr('scrollTop', 0);
            }
            pos = scroll_object.attr('scrollTop');
            scroll_object.scrollTop(pos + amount);
            return self;
        }
    },
...
self.mousewheel(function(event, delta) {
    if (delta > 0) {
        self.scroll(-40);
    } else {
        self.scroll(40);
    }
    return false;
}, true);
于 2013-08-09T05:57:59.100 に答える