【uni-app】uniapp如何实现左滑删除以及改造uni-ui中的swiperAction

左滑删除 或者 置顶之类的功能我们经常要实现,类似于微信的删除聊天框的结构 我就不贴图了

1-如何在uniapp中实现左滑删除

我使用的是uni-ui中的swiperAction 不得不说 性能还是不错的。大家想自己手动封装这个框架也是可以的,可以下载下来源码看看人家的实现思路,在h5和小程序上主要就是使用touchstart和touchend来监控的

插件地址:uni-swipe-action 滑动操作 - DCloud 插件市场

文档地址:action文档

代码参考:这里演示的是最常用的 可以去官网看看其他内容

<uni-swipe-action>
    //right-options 右滑出现的内容。left-options:左滑出现的内容
    <uni-swipe-action-item :right-options="options" :left-options="options" @click="onClick" @change="change">
        <view>这里是未滑动之前显示的内容</view>
    </uni-swipe-action-item>
</uni-swipe-action>

export default {
  data(){
    return {
      options:[
        {
            text: '取消',
            style: {
                backgroundColor: '#007aff'
            }
        }, {
            text: '确认',
            style: {
                backgroundColor: '#dd524d'
            }
        }
      ]
    }
  },
  methods:{
    onClick(e){
        //点击选项按钮时触发事件	
        //e = {content,index} ,content(点击内容)、index(下标)、position (位置信息)
    },
    swipeChange(e){
     	//组件打开或关闭时触发	
        // left:左侧 ,right:右侧,none:关闭
    }
  }
}

效果如下

优点:兼容性好跨全端、顺滑、轻量 

缺点:只能够设置文字版本、还有比如动画没有回弹之类的

2-如何改造swiper-action 让他能够支持图片

1、首先找到uni-modules下面的swiper-action

大家可以通过搜索right或者left来定义到自己想要修改的部分。因为对于微信小程序和h5 他是使用wxs来实现的,app nvue端使用的是 bindingx 而支持的其他平台使用的是 js

(因为我这里只有小程序和h5的需求因此我只修改了这一部分,大家有其他需求可以按需修改)

 通过阅读他的源码不难找出 他的item中只支持文字版本,所以我们只需要添加image标签就可以了,添加代码如下:

首先添加了image标签,并且设置了动态传入的属性,

isImage:代表是否是传入图片 如果是图片则不显示文字部分(当然如果大家需要文字图片同时出现的就可以不添加这个属性)

src:传入图片的地址,这里建议最好使用网络地址,本地地址图片打包的时候容易出现位置错乱找不到图片的问题 

imgWidth和imgHeight:就是图片的宽高

	<image class="uni-swipe_img" v-if="item.isImage" :src="item.src" :style="{
							width:item.style.imgWidth,
							height:item.style.imgHeight
						}" />
						<text v-else class="uni-swipe_button-text"
							:style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{
   
   { item.text }}</text>

做完这一步,option传入内容为

options: [{
					isImage: true,
					src: './delete.png',//这里只是为了演示,建议使用网络图片
					style: {
						backgroundColor: '#E02E00',
						imgWidth: '64rpx',
						imgHeight: '72rpx'
					}
				}]
			}

效果:

大家都要善于使用并且改造轮子哦~加油! 

猜你喜欢

转载自blog.csdn.net/wuguidian1114/article/details/123683506