Vue 仿QQ左滑删除组件功能

在这里插入图片描述
实现思路

具体实现思路如下:

1.布局方面我采用的是 rem + flex 布局,具体如何结构和样式可以参考我的代码,值得注意的是后面的删除按钮是我通过定位放在了每一行的最后,超出隐藏了而已
2.左滑和右滑是通过 touchstart 和 touchend 事件,通过判断滑动开始和结束,水平方向 x 的偏移量,如果大于一定得阈值认为是左滑动,小于一定的阈值则认为是右滑动
3.左滑动和右滑动分别都是通过父级 li 元素的 translate 偏移量进行变化的,这里我的实现方式是提前声明好样式,通过改变当前父级 li 的 type 值,进行样式切换
4.点击某一个滑块的时候,首先判断当前所有的滑块是否有处于 滑出状态的 ,如果有,则必须先将所有的滑块状态还原,如果没有,则点击生效,我这里只是弹出一个 alter ,具体业务可以根据实际填写
5.删除相对简单,当滑块画出后,出现删除按钮,点击按钮,拿到当前的数组索引值,通过数组的 splice 方法,删除对应的数组值即可

Html代码
在这里插入图片描述

js
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2中实现购物车左滑删除功能可以按照以下步骤进行操作: 1. 首先,在购物车列表的每个商品项上添加一个左滑删除的按钮或者手势,可以使用第三方库如`v-swipe`来实现左滑手势。 2. 在组件的`data`选项中定义一个状态变量,比如`showDeleteBtn`,用来控制左滑删除按钮的显示与隐藏。 3. 监听左滑手势或者点击删除按钮的事件,在事件处理函数中修改`showDeleteBtn`的值,来控制删除按钮的显示与隐藏。 4. 使用Vue的条件渲染指令`v-if`或者`v-show`来根据`showDeleteBtn`的值来控制删除按钮的显示与隐藏。 具体代码示例可以参考下面的示例: ```html <template> <div> <ul> <li v-for="item in cartItems" :key="item.id"> <div @swipeleft="showDeleteBtn = true" @swiperight="showDeleteBtn = false"> {{ item.name }} - {{ item.price }} <button v-if="showDeleteBtn" @click="deleteItem(item.id)">删除</button> </div> </li> </ul> </div> </template> <script> export default { data() { return { cartItems: [ { id: 1, name: '商品1', price: 10 }, { id: 2, name: '商品2', price: 20 }, // ... ], showDeleteBtn: false }; }, methods: { deleteItem(itemId) { // 在这里处理删除商品的逻辑 } } }; </script> ``` 在上面的代码中,通过`@swipeleft`和`@swiperight`事件监听左滑和右滑手势,在事件处理函数中修改`showDeleteBtn`的值来控制删除按钮的显示与隐藏。然后使用`v-if`指令根据`showDeleteBtn`的值来决定是否渲染删除按钮。当用户点击删除按钮时,可以触发`deleteItem`方法来处理删除商品的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值