我正在使用" ons-gesture-detector"进行快速演示。 ,我有一个" ons-sliding-menu"这是从左侧可以移动的,所以如果我举一个" ons-list-item"包含在" ons-gesture-detector"
当我向左滑动时它工作正常,但是当我向右滑动时它会触发ng-swiperight,但也会打开滑动菜单。
所以我想要做的是在我做的时候覆盖开场边菜单" ng-swiperight"
这是一个代码示例:
<ons-sliding-menu menu-page="menu.html" main-page="balance.html" side="left"
var="menu" type="reveal" max-slide-distance="260px" swipable="true">
</ons-sliding-menu>
<ons-list ng-controller="testController">
<ons-gesture-detector ng-swipeleft="sayAlert('left')" ng-swiperight="sayAlert('right')">
<ons-list-item ng-click="showPopup('list.html')" modifier="tappable">
<center>
List
<br />
List
List
<br />
List
</center>
</ons-list-item>
</ons-gesture-detector>
<ons-gesture-detector ng-swipeleft="sayAlert('left')" ng-swiperight="sayAlert('right')">
<ons-list-item ng-click="showPopup('list.html')" modifier="tappable">
<center>
List
<br />
List
List
<br />
List
</center>
</ons-list-item>
</ons-gesture-detector>
</ons-list>
修改 我试图添加&#34; swipe-target-width&#34;对于&#34; ons-sliding-menu&#34;具有较小的价值。但是这会阻止所有的滑动和swiperight事件
答案 0 :(得分:1)
您可以停止<ons-gesture-detector>
元素的事件传播。
在此示例中,我使用'mousemove'
事件,因为我在PC上尝试过,但对于移动设备,您应该使用'touchmove'
事件(或两者)。
ons.ready(function() {
var gestureDetector = document.querySelector('ons-gesture-detector');
gestureDetector.addEventListener('mousemove', function(ev) {
ev.stopPropagation();
});
});
我在Codepen上做了一个例子: http://codepen.io/argelius/pen/GgWYBj