鼠标滚轮事件jquery

时间:2013-08-11 20:55:14

标签: jquery

我目前有一个覆盖默认鼠标滚轮行为的函数:

$(function() {
      $('body').mousewheel(function(event, delta) {
            if (flag) { return false; }
            $current = $('div.current');

           console.log(delta);
           console.log($current);

           if (delta > 0) {
               $prev = $current.prev();

              if ($prev.length) {
                 flag = true;
                $('body').scrollTo($prev, 750, {
                    onAfter : function(){
                        flag = false;
                    }
                });
                $current.removeClass('current');
                $prev.addClass('current');
            }
        } else {
            $next = $current.next();

            if ($next.length) {
                flag = true;
                $('body').scrollTo($next, 750, {
                    onAfter : function(){
                        flag = false;
                    }
                });
                $current.removeClass('current');
                $next.addClass('current');
            }
        }

      event.preventDefault();
    });
});

我使用此功能来跟踪我的“页面”:

window.setInterval(function(){
    var sliderObject = $.data( $('#slider-main')[0], 'liquidSlider');
    if (sliderObject.currentTab == 0) {
        home = true;
    }
    else{
        home = false;
    }
}, 500);

我想要的:如果home设置为true

,我想仅覆盖鼠标滚轮的默认行为

换句话说,我只想在home为真时绑定特殊的鼠标滚轮功能。

我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我要做的是,在鼠标滚轮事件$.mousewheel(我不知道jQuery支持的方式)的监听器内,有一个if语句确定home是否设置为true并对其采取行动。

在这种情况下:

$('body').mousewheel(function (event, delta) {
    if (home === true) {
        // Special behavior
    } else {
        // Default behavior
    }
});