uniapp 实现滑动元素删除效果

官网地址:uni-app官网 (dcloud.net.cn)

最终效果如下图:

滑动删除需要用到 uni-ui 的 uni-swipe-action 组件和 uni-swipe-action-item

属性名 类型 可选值 默认值 是否必填 说明
left-options Array/Object - - 左侧选项内容及样式
right-options Array/Object - - 右侧选项内容及样式
html 复制代码
    下面的 block 元素,循环出所有的商品元素

    <!-- uni-swipe-action 是最外层包裹性质的容器 -->
    <uni-swipe-action>
      <block v-for="(goods, i) in cart" :key="i">
          <!-- uni-swipe-action-item 可以为其子节点提供滑动操作的效果。需要通过 options 属性来指定操作按钮的配置信息 -->
          <uni-swipe-action-item :right-options="options" @click="onClick(goods)">
            <!-- ================================== -->
            <view style="height: 300rpx;background-color: pink;">
              根据自己需要,配置 需要的样式
            </view>
            <!-- ================================== -->
          </uni-swipe-action-item>
      </block>
    </uni-swipe-action>

配置option项、所有商品对象:

参数 类型 是否必填 说明
text String 按钮的文字
style Object 按钮样式{backgroundColor,color,fontSize},backgroundColor默认为:#C7C6CD,color默认为:#FFFFFF,fontSize默认为:14px
javascript 复制代码
    data() {
      return {
        // 这个是所有商品对象
        cart: [{
            goods_id: 1,
        },{
            good_id: 2
        }],

        // 这个是滑动后的配置项
        options: [{
          text: '删除', // 显示的文本内容
          style: {
            backgroundColor: '#C00000' // 按钮的背景颜色
          }
        }]
      }
    },

可用的事件:【我们需要的是滑动点击删除,用了 @click 事件,并传递 货品 id】

事件称名 说明 返回值
@click 点击选项按钮时触发事件 e = {content,index} ,content(点击内容)、index(下标)、position (位置信息)
@change 组件打开或关闭时触发 left:左侧 ,right:右侧,none:关闭

得到下面的效果图:

使用 filter 方法,使返回值为 不存在 刚刚传进来滑动删除 对应货品id 的对象

javascript 复制代码
  methods: {
    // 根据 Id 从购物车中删除对应的商品信息
    onClick(goods_id) {
      // 调用数组的 filter 方法进行过滤
      this.cart = this.cart.filter(x => x.goods_id !== goods_id)
    },
  }
相关推荐
子兮曰4 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
一隅论数智4 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
前端小万4 小时前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
A黄俊辉A4 小时前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
三十而立洋5 小时前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁5 小时前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
深圳老胡6 小时前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
honkun66 小时前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table