最近做一个项目,由于用到了竖向swiper,导致占用屏幕过大,用户滑动总是滑动到swiper组件,页面无法向下拉动,于是找各种办法禁止用户手动滑动swiper组件。
经过网上一番查找,网友们也是闹洞大开,各种方法都想出来了,有用透明蒙层覆盖的,这不失为一种很好的解决办法,但是如果swiper上有元素需要点击就没有办法了。
继续查找,于是找到了用 catchtouchmove 事件来截获用户手动滑动事件,这样既解决了禁用用户手动滑动,有解决了有点击按钮不影响使用
贴代码:
WXML:
<swiper class=‘yaohe‘ vertical=‘true‘ circular=‘true‘ autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"> <block wx:for=‘{{yaohe}}‘> <swiper-item catchtouchmove=‘catchTouchMove‘> <!--重点这里--> <block wx:for=‘{{item}}‘> <view class=‘yaohe_item‘> <view class=‘yaohe_img‘> <image src=‘{{item.goods_icon}}‘></image> </view> <view class=‘yaohe_right‘> <view class=‘yaohe_text‘>{{item.goods_feature}}</view> <view class=‘boss_price‘> <view class=‘boss‘>{{item.shop_name}}</view> <view class=‘price‘ bindtap=‘goGoodsDetail‘ data-shop_goods_id=‘{{item.shop_goods_id}}‘>¥{{item.goods_price}}</view> </view> </view> </view> </block> </swiper-item> </block> </swiper>
JS:
// 截获竖向滑动 catchTouchMove:function(res){ return false }