uniapp列表滑动操作(删除、编辑)

本篇文章结合了下拉刷新、上拉加载,以及每一条列表的左滑删除,这里的header和footer盒子样式我就不写了,光写了main。是上中下布局,中间是内容,废话不说了,直接上代码!

html 复制代码
<template>
  <view class="wrap">
    <view class="header">
      ....
    </view>
    <view class="main">
      <scroll-view scroll-y class="scrollbox" @scrolltolower="lower" refresher-enabled="true"
        :refresher-triggered="trigger" @refresherrefresh="refresherrefresh" show-scrollbar="false">
        <uni-swipe-action>
          <uni-swipe-action-item
            v-for="(item, index) in 20"
            :right-options="options"
            @change="swipeChange($event, index)"
            @click="swipeClick($event, index)"
          >
          
            <text style="line-height: 40px;display: block;margin: 0 0 10px 0; background-color: aqua;">{{index}}</text>

          </uni-swipe-action-item>
        </uni-swipe-action>
        <!-- 加载更多 -->
        <view>
          <view class="loading-text" v-if="loadingFlag == 1">数据加载中...</view>
          <view class="loading-text" v-if="loadingFlag == 2">没有更多的数据...</view>
        </view>
      </scroll-view>
    </view>
    <view class="footer">
      ....
    </view>
  </view>
</template>

<script>
export default {
  data () {
    return {
      // 上拉刷新、下拉加载
      trigger: false,
      loadingFlag: 1,
      // 左滑删除
      options: [{
        text: '取消',
        style: {
          backgroundColor: '#007aff'
        }
      }, {
        text: '确认',
        style: {
          backgroundColor: '#dd524d'
        }
      }]
    }
  },
  methods: {
    // 上拉加载
    lower () {
      console.log('触底加载11')
    },
    // 下拉刷新
    refresherrefresh () {
      const _that = this
      this.trigger = true
      setTimeout(() => {
        _that.trigger = false
      }, 3000)
    },
    // 左滑删除
    swipeClick (e) {
      console.log('点击了' + (e.position === 'left' ? '左侧' : '右侧') + e.content.text + '按钮')
    },
    swipeChange (e, index) {
      console.log('当前状态:' + e + ',下标:' + index)
    }
  }
}
</script>

<style lang="scss" scoped>
.wrap {
  width: 100vw;
  height: 100vh;
  .header {
    // 这里的样式我就不写了
  }
  .main {
    width: 100%;
    height: calc(100vh - 50px - 50px);
    background-color: pink;
    overflow: auto;
    // 这个是scroll-view的盒子样式,必须要有,要不然不会触发 触底滚动事件
    .scrollbox {
      width: 100%;
      height: 100%;
    }
    // 加载更多
    .loading-text {
      font-size: $uni-size-loading-text;
      text-align: center;
      line-height: 30px;
      background-color: yellow;
    }
    // 左滑删除
    .uni-swipe {
      height: 40px !important;
      margin: 10px 0;
      .uni-swipe_box {
        height: 100%;
      }
    }
  }
  .main {
    // 这里的样式我就不写了
  }
}
</style>
相关推荐
lhldsg9 小时前
家政派单系统开发实战:从需求分析到智能调度全流程指南
java·junit·小程序·uni-app·需求分析
PedroQue9914 小时前
v2.6.0 新增全局返回守卫与 iOS 侧滑拦截,补齐跨端路由拦截能力
前端·uni-app
蜡台21 小时前
Uniapp 开发H5 页面跳转拦截
前端·javascript·uni-app
宠友信息2 天前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app
梦曦i2 天前
Vue-Router 2.4.0 新增可控重定向功能
前端·uni-app
郑州光合科技余经理2 天前
海外版外卖系统架构:订单怎么流转、权限怎么分
java·开发语言·前端·系统架构·uni-app·php·ai编程
qq_316837752 天前
uniapp 安卓/H5 使用 contentEditable 属性 富文本编辑器
android·javascript·uni-app
小满zs3 天前
关于HBuilderX+ 微信小程序开发工具启动的问题
前端·uni-app
sunphp开发者3 天前
制作手绘地图瓦片切图
前端·uni-app
梦曦i4 天前
RouterLink v2.5.0:H5端原生能力全面回归
前端·uni-app