当前位置:首页 > 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可帮助优化长列表滑动性能。

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

uniapp 卡片滑动

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

相关文章

vue实现弹出卡片

vue实现弹出卡片

Vue 实现弹出卡片的方法 使用 v-if 或 v-show 控制显示 通过 Vue 的指令 v-if 或 v-show 可以控制弹出卡片的显示和隐藏。v-if 会动态添加或移除 DOM 元素,而 v…

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp怎么启动

uniapp怎么启动

启动UniApp项目的步骤 确保已安装Node.js(建议版本12+)和HBuilderX(官方IDE)。若未安装,需先下载并配置环境。 安装开发工具 从HBuilderX官网下载对应操作系统的版…

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp分享到facebook

uniapp分享到facebook

使用uniapp分享到Facebook的方法 在uniapp中实现分享到Facebook功能,可以通过调用原生插件或使用第三方SDK。以下是具体实现方式: 安装Facebook SDK插件 在uni…

uniapp切片

uniapp切片

uniapp 切片实现方法 在 uniapp 中实现切片功能通常指的是对图片或数据进行分割处理。以下是几种常见的切片实现方式: 图片切片展示 通过 CSS 和 JavaScript 实现图片的网格化…