• 小程序左侧滑效果


    <style>

      .touch-item {
     font-size: 14px;
     display: flex;
     justify-content: space-between;
     border-bottom:1px solid #ccc;
      100%;
     overflow: hidden
    }
    .content {
      100%;
     padding: 10px;
     line-height: 22px;
     margin-right:0;
     -webkit-transition: all 0.4s;
     transition: all 0.4s;
     -webkit-transform: translateX(150px);/****修改左边删除块框度****/
     transform: translateX(150px);/****修改左边删除块框度****/
     margin-left: -150px;/****修改左边删除块框度****/
    }
    .del {
     background-color: orangered;
      150px;   /****修改左边删除块框度****/
     display: flex;
     flex-direction: row;
     align-items: center;
     justify-content: center;
     color: #fff;
     -webkit-transform: translateX(150px);/****修改左边删除块框度****/
     transform: translateX(150px);/****修改左边删除块框度****/
     -webkit-transition: all 0.4s;
     transition: all 0.4s;
    }
    .touch-move-active .content,
    .touch-move-active .del {
     -webkit-transform: translateX(0);
     transform: translateX(0);
    }

    </style>

    //wxml

    <view class="container">
    <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index="{{index}}" bindtouchstart="touchstart" bindtouchmove="touchmove" wx:for="{{items}}" wx:key="">
    <view class="content">{{item.content}}</view>
     <view class="del" catchtap="del" data-index="{{index}}">
        <text style="margin:0 10rpx; color: #fff; display: inline-block;">删除</text>
        <text style="margin:0 10rpx; color: #fff; display: inline-block;">删除22</text>
        <text style="margin:0 10rpx; color: #fff; display: inline-block;">删除66</text>
        <text style="margin:0 10rpx; color: #fff; display: inline-block;">删除77</text>
     </view>
     </view>
    </view>
    //js

    var app = getApp()
    Page({
     data: {
      items: [],
      startX: 0, //开始坐标
      startY: 0
     },
     onLoad: function () {
      for (var i = 0; i < 10; i++) {
       this.data.items.push({
        content: i + " 向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦",
        isTouchMove: false //默认全隐藏删除
       })
      }
      this.setData({
       items: this.data.items
      })
     },
     //手指触摸动作开始 记录起点X坐标
     touchstart: function (e) {
      //开始触摸时 重置所有删除
      this.data.items.forEach(function (v, i) {
       if (v.isTouchMove)//只操作为true的
        v.isTouchMove = false;
      })
      this.setData({
       startX: e.changedTouches[0].clientX,
       startY: e.changedTouches[0].clientY,
       items: this.data.items
      })
     },
     //滑动事件处理
     touchmove: function (e) {
      var that = this,
       index = e.currentTarget.dataset.index,//当前索引
       startX = that.data.startX,//开始X坐标
       startY = that.data.startY,//开始Y坐标
       touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标
       touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
       //获取滑动角度
       angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
      that.data.items.forEach(function (v, i) {
       v.isTouchMove = false
       //滑动超过30度角 return
       if (Math.abs(angle) > 30) return;
       if (i == index) {
        if (touchMoveX > startX) //右滑
         v.isTouchMove = false
        else //左滑
         v.isTouchMove = true
       }
      })
      //更新数据
      that.setData({
       items: that.data.items
      })
     },
     /**
      * 计算滑动角度
      * @param {Object} start 起点坐标
      * @param {Object} end 终点坐标
      */
     angle: function (start, end) {
      var _X = end.X - start.X,
       _Y = end.Y - start.Y
      //返回角度 /Math.atan()返回数字的反正切值
      return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
     },
     //删除事件
     del: function (e) {
      this.data.items.splice(e.currentTarget.dataset.index, 1)
      this.setData({
       items: this.data.items
      })
     }
    })

  • 相关阅读:
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 菜单与按钮
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    高考后的BB
  • 原文地址:https://www.cnblogs.com/gerry/p/8636307.html
Copyright © 2020-2023  润新知