Swipeout 滑动菜单
概述
与 iOS 原生的滑动操作交互类似,可通过滑动显示操作菜单。
使用指南
在.vue中引入组件
<script>
import iSwipeout from 'iview-mpvue/dist/components/swipeout/swipeout'
export default {
'i-swipeout': iSwipeout
}
</script>
在main.js中引入样式文件
import 'iview-mpvue/dist/components/swipeout/style/css'
示例
<div class="i-swipeout-demo">
<div class="i-swipeout-demo-title">基础用法</div>
<div class="i-swipeout-demo-des">
注: 1、设置uncloseable为true时点击按钮不能关闭,必须联合toggle2来实现
2、如果传递action的话必须传递width来设置每个按钮的宽度
</div>
<i-swipeout i-class="i-swipeout-demo-item" :actions="actions">
<div slot="content">
<i-cell
i-class="i-cell-padding"
title="猛虫过江"
label="侏罗纪世界主题公园及豪华度假村被失控的恐龙们摧毁已有四年">
</i-cell>
</div>
</i-swipeout>
<i-swipeout i-class="i-swipeout-demo-item" :actions="actions" :toggle="toggle2" unclosable="true">
<div slot="content">
<i-cell
i-class="i-cell-padding"
title="点击按钮不可关闭"
label="侏罗纪世界主题公园及豪华度假村被失控的恐龙们摧毁已有四年">
</i-cell>
</div>
</i-swipeout>
<i-swipeout i-class="i-swipeout-demo-item" :actions="actions" :toggle="toggle2" :unclosable="true" @change="handlerCloseButton">
<div slot="content">
<i-cell
i-class="i-cell-padding"
title="可点击按钮关闭"
label="侏罗纪世界主题公园及豪华度假村被失控的恐龙们摧毁已有四年">
</i-cell>
</div>
</i-swipeout>
<div class="i-swipeout-demo-title">自定义右侧Button</div>
<div class="i-swipeout-demo-des">注: 右侧必须设置固定宽度。默认宽度160px</div>
<i-swipeout i-class="i-swipeout-demo-item" operateWidth="210">
<div slot="content">
<i-cell
i-class="i-cell-padding"
title="猛虫过江"
label="侏罗纪世界主题公园及豪华度假村被失控的恐龙们摧毁已有四年">
</i-cell>
</div>
<div slot="button" class="i-swipeout-demo-button-group">
<div class="i-swipeout-demo-button">点赞</div>
<div class="i-swipeout-demo-button">分享</div>
<div class="i-swipeout-demo-button">删除</div>
</div>
</i-swipeout>
<i-swipeout i-class="i-swipeout-demo-item" operateWidth="180">
<div slot="content">
<i-cell
i-class="i-cell-padding"
title="猛虫过江"
label="侏罗纪世界主题公园及豪华度假村被失控的恐龙们摧毁已有四年">
</i-cell>
</div>
<div slot="button" class="i-swipeout-demo-button-group" style="background:#2db7f5;">
<div class="i-swipeout-demo-button" style="width:60px"><i-icon size="32" type="like_fill"></i-icon></div>
<div class="i-swipeout-demo-button" style="width:60px"><i-icon size="32" type="share_fill"></i-icon></div>
<div class="i-swipeout-demo-button" style="width:60px"><i-icon size="32" type="delete_fill"></i-icon></div>
</div>
</i-swipeout>
<div class="i-swipeout-demo-title">和actionsheet联合使用</div>
<i-action-sheet :visible="visible2" :actions="actions2" :show-cancel="true" @cancel="handleCancel2" @click="handleClickItem2" :mask-closable="false">
<div slot="header" style="padding: 16px">
<div style="color: #444;font-size: 16px">确定吗?</div>
<text>删除后无法恢复哦</text>
</div>
</i-action-sheet>
<i-swipeout i-class="i-swipeout-demo-item" :operateWidth="180" :unclosable="true" :toggle="toggle">
<div slot="content">
<div class="i-swipeout-image">
<i-icon size="20" color="#FFFFFF" type="feedback_fill"></i-icon>
</div>
<div class="i-swipeout-des">
<div class="i-swipeout-des-h2">第七个小矮人</div>
<div class="i-swipeout-des-detail">乐观善良的7个小矮人原本过着简单快乐的生活,不料诅咒公主的巫婆利用小矮人进入.</div>
</div>
</div>
<div slot="button" class="i-swipeout-demo-button-group" style="background:#2db7f5;">
<div class="i-swipeout-demo-button" style="width:60px" @click="actionsTap"> <i-icon size="32" type="like_fill"></i-icon></div>
<div class="i-swipeout-demo-button" style="width:60px" @click="actionsTap"><i-icon size="32" type="share_fill"></i-icon></div>
<div class="i-swipeout-demo-button" style="width:60px" @click="actionsTap"><i-icon size="32" type="delete_fill"></i-icon></div>
</div>
</i-swipeout>
<div class="i-swipeout-demo-title">自定义样式</div>
<i-swipeout i-class="i-swipeout-demo-item" :actions="actions">
<div slot="content">
<div class="i-swipeout-image" style="background:#ff9900;">
<i-icon size="20" color="#FFFFFF" type="coupons_fill" />
</div>
<div class="i-swipeout-des">
<div class="i-swipeout-des-h2">第七个小矮人</div>
<div class="i-swipeout-des-detail">乐观善良的7个小矮人原本过着简单快乐的生活,不料诅咒公主的巫婆利用小矮人进入.</div>
</div>
</div>
</i-swipeout>
</div>
<script>
export default {
....
data() {
return {
visible2: false,
//小程序没有refs,所以只能用动态布尔值控制关闭
toggle : false,
toggle2 : false,
actions2: [
{
name: '删除',
color: '#ed3f14',
loading: false
}
],
actions : [
{
name : '喜欢',
color : '#fff',
fontsize : '20',
width : 100,
icon : 'like',
background : '#ed3f14'
},
{
name : '返回',
width : 100,
color : '#80848f',
fontsize : '20',
icon : 'undo'
}
]
}
},
methods: {
handleCancel2() {
this.visible2 = false
this.toggle2 = !this.toggle2
},
handleClickItem2() {
this.actions2[0].loading = true
setTimeout(() => {
this.actions2[0].loading = false
this.visible2 = false
this.toggle = !this.toggle
}, 2000)
},
handlerCloseButton() {
this.toggle2 = !this.toggle2
},
actionsTap() {
this.visible2 = true
}
}
}
</script>
API
Swipeout properties
属性
说明
类型
默认值
i-class
自定义 class 类名
String
-
actions
按钮组,具体项参照后面的表格
Array
[]
unclosable
点击菜单时,是否收起
Boolean
false
toggle
当此值由 false 转为 true 时,收起菜单
Boolean
false
operate-width
菜单项的总宽度
Number
160
Swipeout events
事件名
说明
返回值
v-on:change
点击菜单项时触发
index
Swipeout slot
名称
说明
content
菜单内容
button
自定义按钮组
Swipeout actions
属性
说明
类型
默认值
name
按钮文案
String
-
icon
按钮图标
String
-
color
按钮文字的颜色
String
-
fontsize
字号
String
-
width
宽度
String
-
background
背景色
String
-
Last updated
Was this helpful?