小程序?qū)崿F(xiàn)左滑刪除效果
本文實例為大家分享了小程序?qū)崿F(xiàn)左滑刪除效果的具體代碼,供大家參考,具體內(nèi)容如下

1、movable-area基本概念
實現(xiàn)思路:
大家仔細去看看官網(wǎng)的文檔后再來看我寫的這篇文章可能會更好理解。
(1)movable-area這個就是定義了一個移動的區(qū)域,跟普通的<view></view>的含義是一樣的,不同在于,接著往下看;
注意:movable-area 必須設(shè)置width和height屬性,不設(shè)置默認為10px
(2)movable-view這個就是一個可移動的視圖容器,可以在頁面中拖拽滑動。
movable-view 必須設(shè)置width和height屬性,不設(shè)置默認為10px
movable-view 默認為絕對定位,top和left屬性為0px
當(dāng)movable-view小于movable-area時,movable-view的移動范圍是在movable-area內(nèi);當(dāng)movable-view大于movable-area時,movable-view的移動范圍必須包含movable-area(x軸方向和y軸方向分開考慮)
但是要注意: movable-view必須在<movable-area/>組件中,并且必須是直接子節(jié)點,否則不能移動。
有這么一些屬性看微信小程序api
OK,這就是關(guān)于movable-area組件的一些基本概念的介紹,接下來我們實踐實踐。
2、頁面結(jié)構(gòu)
(1)這是我們html基本頁面結(jié)構(gòu),我主要來解釋一下movable-view的屬性起到了一些什么作用。
- 首先我們定義了direction方向為horizontal(橫向);
- 然后x就是偏移方向,這里我們給個默認值為0;
- out-of-bounds定義當(dāng)超過可移動區(qū)域后,還可以移動;
- damping為阻尼系數(shù),設(shè)置為100就是讓它移動快點;
- 最后綁定了一個在拖動過程中觸發(fā)的事件、觸摸開始和結(jié)束事件。
<movable-view damping="100" out-of-bounds="true" direction="horizontal" x="{{x}}" animation="false" bindchange="handleMovableChange" capture-bind:touchstart="handleTouchestart" capture-bind:touchend="handleTouchend">
代碼如下:
html
<view class="container">
<view class="main">
<view class="main_item">
<movable-area>
<movable-view damping="100" out-of-bounds="true" direction="horizontal" x="{{x}}" animation="false" bindchange="handleMovableChange" capture-bind:touchstart="handleTouchestart" capture-bind:touchend="handleTouchend">
<view class="main_item_content ">
左滑刪除
</view>
</movable-view>
</movable-area>
<view class="delete_btn " data-productIndex="{{index}} " bindtap="handleDeleteProduct ">刪除</view>
</view>
</view>
</view>
css:
.container {
padding: 0;
}
page {
padding: 0;
}
.main {
display: flex;
flex-direction: column;
align-items: center;
}
.main_item {
display: flex;
flex-direction: row;
background: #fff;
overflow: hidden;
}
movable-area {
width: 532rpx;
height: 201rpx;
background: #fff;
}
movable-view {
width: 716rpx;
height: 201rpx;
}
.main_item_content {
box-sizing: border-box;
height: 201rpx;
border-radius: 10rpx;
line-height: 201rpx;
color: #8e8e8e;
padding-left: 10px;
background: #eee;
}
.delete_btn {
width: 184rpx;
height: 201rpx;
background-color: #8FC31F;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
color: #fff;
font-size: 28rpx;
text-align: center;
line-height: 201rpx;
}
js:
// pages/listDel/index.js
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
// x軸方向的偏移
x: 0,
// 當(dāng)前x的值
currentX: 0
},
handleMovableChange: function(e) {
// this.data.currentX = e.detail.x;
this.data.currentX = e.detail.x;
},
handleTouchend: function(e) {
this.isMove = true;
if (this.data.currentX < -46) {
this.data.x = -92;
this.setData({
x: this.data.x
});
} else {
this.data.x = 0;
this.setData({
x: this.data.x
});
}
},
handleTouchestart: function(e) {},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function(options) {
// let _this = this;
// wx.createSelectorQuery().selectAll('.delBtn ').boundingClientRect(function(rect) {
// _this.data.delWidth = rect[0].width;
// }).exec();
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面顯示
*/
onShow: function() {
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面隱藏
*/
onHide: function() {
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面卸載
*/
onUnload: function() {
},
/**
* 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動作
*/
onPullDownRefresh: function() {
},
/**
* 頁面上拉觸底事件的處理函數(shù)
*/
onReachBottom: function() {
},
/**
* 用戶點擊右上角分享
*/
onShareAppMessage: function() {
}
})
2:touchstart、touchmove 如果大家想了解的更清楚可以查看幫助文檔的哦
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Javascript實現(xiàn)的不重復(fù)ID的生成器
本文介紹了js生成一個不重復(fù)的ID的函數(shù)的進化之路,具有一定的參考價值,需要的朋友一起來看下吧2016-12-12
javascript二維數(shù)組和對象的深拷貝與淺拷貝實例分析
這篇文章主要介紹了javascript二維數(shù)組和對象的深拷貝與淺拷貝,結(jié)合實例形式分析了JavaScript針對數(shù)組與對象的深拷貝及淺拷貝相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
使用Promise鏈?zhǔn)秸{(diào)用解決多個異步回調(diào)的問題
這篇文章主要給大家介紹了使用Promise鏈?zhǔn)秸{(diào)用解決多個異步回調(diào)問題的方法,文中給出了詳細的介紹和示例代碼,有需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-01-01
Javascript調(diào)試之console對象——你不知道的一些小技巧
這篇文章主要總結(jié)了console對象的一些有用的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-07-07
微信小程序頁面調(diào)用自定義組件內(nèi)的事件詳解
這篇文章主要介紹了微信小程序頁面調(diào)用自定義組件內(nèi)的事件詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09

