(6)uniapp左侧滑动菜单栏(实现手指右滑收起菜单)

功能:点击首页菜单按钮,滑出菜单栏,点击空白处或者手指右滑收起。
html结构:

<!-- 遮罩层 -->
<view class="mask" v-if="mask" @tap="_mask" @touchstart="touchS" @touchmove="touchM" @touchend="touchE" :class="[ siderClass ? 'animation-fade-out' : 'animation-fade' ]"></view>

<!-- 菜单栏-->
<view class="side_bar" v-if="mask" :class="[ siderClass ? 'animation-slide-right-out' : 'animation-slide-left' ]" :style="{ left : leftSlide }" @touchstart="touchS" @touchend="touchE">
<view>

JS:

// data中定义
data() {
    return {
         mask: false, // 遮罩层切换
     siderClass: false,  // 样式切换
     startX: '', // 触摸开始位置
     endX: '', // 触摸结束位置
    }
}
    methods: {

        // 手指触摸事件 用于菜单左滑
        touchS:function(e) {
            _self.startX = e.touches[0].clientX
            // console.log('开始' + e.touches[0].clientX );
        },
        touchE:function(e){
            _self.endX = e.changedTouches[0].clientX;
            // 触摸开始到停止 的差值
            var disX = _self.startX - _self.endX;
            if(disX >= 0) {
                _self.siderClass = true
                setTimeout(()=>{
                    _self.mask = false
                },300)
            }
        },
        // 菜单盒子的遮罩层
        _mask() {
            _self.siderClass = true
            setTimeout(()=>{
                _self.mask = false
            },350)
        }
            }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 天还没亮,已经出门,来到了一个小市场,已经把铺地纸打开,把卖的被子从车上卸了下来后,哥哥便开车走了,赶着去另一个地...
    健倾心语阅读 2,488评论 0 1
  • “不管你经历了怎样的撕心裂肺,早上醒来这座城市依然车水马龙,人语喧嚣,没有人在意你失去了什么,没有人关心你的不快乐...
    雨落飞扬阅读 491评论 0 0
  • 你认为爱情是什么 是山盟海誓? 是天涯海角? 是死心塌地? 或许在爱情初期, 确实是这样的 那么之后呢? 就剩下柴...
    笑笑_feng阅读 121评论 0 0