龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開(kāi)發(fā),龍巖分銷(xiāo)系統(tǒng)

微信小程序-左滑刪除效果

2018.09.08 | 2274閱讀 | 0條評(píng)論 | 小程序

首先把布局寫(xiě)好,根據(jù)自己的需求編寫(xiě),html代碼部分:

<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}}">刪除</view>

</view>

</view>

CSS代碼部分:

page {background-color: white;}

.container {min-height: 100%;padding: 20rpx 0rpx;} 

.touch-item {font-size: 14px;display: flex;justify-content: space-between;border-bottom:1px solid #ccc;width: 100%;overflow: hidden}

.content {

width: 100%;

padding: 10px;

line-height: 22px;

margin-right:0;

-webkit-transition: all 0.4s;

transition: all 0.4s;

-webkit-transform: translateX(90px);

transform: translateX(90px);

margin-left: -90px

}

.del {

background-color: orangered;

width: 90px;

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

color: #fff;

-webkit-transform: translateX(90px);

transform: translateX(90px);

-webkit-transition: all 0.4s;

transition: all 0.4s;

}

.touch-move-active .content,

.touch-move-active .del {-webkit-transform: translateX(0);transform: translateX(0);}

js代碼部分:

觸發(fā)滑動(dòng)事件,需要計(jì)算的哦,代碼有注釋?zhuān)「绺缧〗憬銈兟蕾p拉

 

Page({

data: {

items: [],

startX: 0//開(kāi)始坐標(biāo)

startY: 0

},

onLoad: function (e) {

var that = this;

//common是自己寫(xiě)的公共JS方法,可忽略

common.sys_main(app, that, e);

for (var i = 0; i < 10; i++) {

this.data.items.push({

content: i + " 向左滑動(dòng)刪除哦,向左滑動(dòng)刪除哦,向左滑動(dòng)刪除哦,向左滑動(dòng)刪除哦,向左滑動(dòng)刪除哦",

isTouchMove: false //默認(rèn)隱藏刪除

})

}

this.setData({

items: this.data.items

});

}

,

//手指觸摸動(dòng)作開(kāi)始 記錄起點(diǎn)X坐標(biāo)

touchstart: function (e) {

//開(kāi)始觸摸時(shí) 重置所有刪除

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

})

},

//滑動(dòng)事件處理

touchmove: function (e) {

var that = this;

index = e.currentTarget.dataset.index;//當(dāng)前索引

startX = that.data.startX;//開(kāi)始X坐標(biāo)

startY = that.data.startY;//開(kāi)始Y坐標(biāo)

touchMoveX = e.changedTouches[0].clientX;//滑動(dòng)變化坐標(biāo)

touchMoveY = e.changedTouches[0].clientY;//滑動(dòng)變化坐標(biāo)

//獲取滑動(dòng)角度

angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });

that.data.items.forEach(function (v, i) {

v.isTouchMove = false

//滑動(dòng)超過(guò)30度角 return

if (Math.abs(angle) > 30return;

if (i == index) {

if (touchMoveX > startX) //右滑

v.isTouchMove = false

else //左滑

v.isTouchMove = true

}

})

//更新數(shù)據(jù)

that.setData({

items: that.data.items

})

},

/**

* 計(jì)算滑動(dòng)角度

* @param {Object} start 起點(diǎn)坐標(biāo)

* @param {Object} end 終點(diǎn)坐標(biāo)

*/

angle: function (start, end) {

var _X = end.X - start.X,

_Y = end.Y - start.Y

//返回角度 /Math.atan()返回?cái)?shù)字的反正切值

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

})

}

})




贊 (

發(fā)表評(píng)論

主站蜘蛛池模板: 日本丶国产丶欧美色综合| 亚洲国产成人久久综合野外| 一个色综合国产色综合| 色欲人妻综合AAAAA网| 色综合久久最新中文字幕| 亚洲综合色婷婷在线观看| 99热婷婷国产精品综合| 亚洲情综合五月天| 狠狠久久综合伊人不卡| 综合久久精品色| 亚洲伊人久久成综合人影院| 亚洲国产精品综合久久一线| 亚洲国产天堂久久综合网站| 人妻 日韩 欧美 综合 制服| 久久综合给合综合久久| 精品综合久久久久久888蜜芽| 久久天堂AV综合合色蜜桃网| 久久婷婷色香五月综合激情| 天天做天天爱天天爽综合区| 婷婷五月综合色视频| 亚洲另类激情综合偷自拍图| 伊伊人成亚洲综合人网7777| 色综合久久久久久久久五月| 久久综合综合久久狠狠狠97色88| 国产综合内射日韩久| 久久综合九色综合欧美狠狠| 久久狠狠爱亚洲综合影院| 狠狠做五月深爱婷婷天天综合| 日韩欧美Aⅴ综合网站发布| 狠狠色婷婷七月色综合| 久久综合给合综合久久| 浪潮AV色综合久久天堂| 久久婷婷综合中文字幕| 三级韩国一区久久二区综合| 国产91久久综合| 狠狠88综合久久久久综合网| 伊人亚洲综合网| 久久婷婷五月综合国产尤物app| 色欲综合久久中文字幕网| 国产成人亚洲综合一区| 久久婷婷五月综合色奶水99啪|