在滚动条上禁用mousedown绑定事件

时间:2012-11-24 18:13:48

标签: javascript jquery

http://www.associationtsunami.org/网站上的

如果我根据用户移动鼠标的方向在文档上进行mousedown旋转。

代码是:

key code ...
).bind('mousedown touchstart', function (evt) {
        delete mouse.last;
        if ($(evt.target).is('a, iframe')) {
          return true;
        }
        evt.originalEvent.touches ? evt = evt.originalEvent.touches[0] : null;
        mouse.start.x = evt.pageX;
        mouse.start.y = evt.pageY;
        $(document).bind('mousemove touchmove', function (event) {
          dragging = 1;
          // Only perform rotation if one touch or mouse (e.g. still scale with pinch and zoom)
          if (!touch || !(event.originalEvent && event.originalEvent.touches.length > 1)) {
            event.preventDefault();
            // Get touch co-ords
            event.originalEvent.touches ? event = event.originalEvent.touches[0] : null;
            $('.viewport').trigger('move-viewport', { x: event.pageX, y: event.pageY });
          }
        });
        $(document).bind('mouseup touchend', function () {
          dragging = 0;
          $(document).unbind('mousemove touchmove');
        });
      });

完整代码https://github.com/AssociationTsunami/tsunami/blob/gh-pages/js/cube.js#L72

如果用户在滚动条上创建了mousedown,我想禁用此事件 - 例如在'ONSONPARLA'页面上有一个带有ACCORDIONS的TAB,如果你打开任何一个手风琴内容,你会在边缘获得一个滚动条或者在手风琴内,如果你试图移动滚动条,这也会移动立方体。

在cube.js中覆盖这个的正确方法是什么,这样如果事件在滚动条元素上,立方体就不会转动?

1 个答案:

答案 0 :(得分:0)

不能以这种方式完成。

但还有另一种解决方案。使用一些自定义滚动条插件来替换经典滚动条。你将能够阻止他的事件。我知道这不是一个很好的解决方案,但根据你的网页,你想抓住机会。 :)

Here你可以找到一些不错的插件。

好的插件示例是here