当前位置:首页 > uni-app

uniapp 卡片滑动

2026-02-06 02:05:50uni-app

uniapp 实现卡片滑动效果

使用swiper组件实现基础滑动

在uniapp中,可以利用swiperswiper-item组件快速实现卡片滑动效果。这种方式适合横向滑动的卡片布局。

<template>
  <swiper class="card-swiper" :indicator-dots="true" :autoplay="false">
    <swiper-item v-for="(item, index) in cardList" :key="index">
      <view class="swiper-item">
        <card :data="item"></card>
      </view>
    </swiper-item>
  </swiper>
</template>

<script>
export default {
  data() {
    return {
      cardList: [
        {title: '卡片1', content: '内容1'},
        {title: '卡片2', content: '内容2'},
        {title: '卡片3', content: '内容3'}
      ]
    }
  }
}
</script>

<style>
.card-swiper {
  height: 300px;
}
.swiper-item {
  padding: 15px;
}
</style>

使用movable-area实现自定义滑动

如果需要更灵活的滑动效果,可以使用movable-areamovable-view组件组合实现。

<template>
  <movable-area class="movable-area">
    <movable-view class="movable-view" direction="horizontal" @change="onChange">
      <view v-for="(item, index) in cardList" :key="index" class="card">
        {{item.title}}
      </view>
    </movable-view>
  </movable-area>
</template>

<style>
.movable-area {
  width: 100%;
  height: 300px;
}
.movable-view {
  display: flex;
  height: 100%;
}
.card {
  width: 80vw;
  margin: 0 10px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
</style>

使用第三方组件库

uni-ui和uView等第三方组件库提供了更完善的卡片滑动组件。

安装uni-ui后使用:

<template>
  <uni-swipe-action>
    <uni-swipe-action-item v-for="(item, index) in list" :key="index">
      <view class="card-content">
        {{item}}
      </view>
    </uni-swipe-action-item>
  </uni-swipe-action>
</template>

手势滑动事件处理

通过touch事件实现更精细的滑动控制:

methods: {
  touchStart(e) {
    this.startX = e.touches[0].clientX
  },
  touchMove(e) {
    this.moveX = e.touches[0].clientX
    this.offsetX = this.moveX - this.startX
    // 根据offsetX更新卡片位置
  },
  touchEnd() {
    // 判断滑动距离决定是否切换卡片
  }
}

性能优化建议

大量卡片滑动时应注意性能优化,可采用虚拟列表技术。uniapp的<recycle-list>组件或第三方解决方案如mescroll可帮助优化长列表滑动性能。

uniapp 卡片滑动

卡片内容避免使用过多复杂样式和图片,滑动动画尽量使用CSS transform而非修改定位属性。

标签: 卡片uniapp
分享给朋友:

相关文章

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…

uniapp如何赋值

uniapp如何赋值

uniapp 赋值方法 在 uniapp 中,赋值操作可以通过多种方式实现,具体取决于数据类型和场景。 数据绑定赋值 在模板中使用 {{}} 进行数据绑定,通过修改 data 中的值实现动态更新。…

uniapp隐藏右侧滚动条

uniapp隐藏右侧滚动条

隐藏右侧滚动条的方法 在UniApp中隐藏右侧滚动条可以通过CSS样式实现,适用于H5、小程序等平台。以下是几种常见的方法: 全局样式设置 在App.vue的全局样式中添加以下CSS代码,适用于所有…

任务 uniapp

任务 uniapp

uniapp 简介 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,开发者可以通过一套代码适配多个…