当前位置:首页 > VUE

vue实现名单滚动

2026-02-22 19:08:30VUE

Vue 实现名单滚动效果

实现名单滚动可以通过多种方式完成,常见的有使用 CSS 动画、JavaScript 定时器或第三方库。以下是几种实现方法:

使用 CSS 动画实现平滑滚动

通过 CSS @keyframestransform 实现无限滚动效果:

<template>
  <div class="scroll-container">
    <div class="scroll-content">
      <div v-for="(item, index) in list" :key="index" class="scroll-item">
        {{ item }}
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['张三', '李四', '王五', '赵六', '钱七']
    };
  }
};
</script>

<style>
.scroll-container {
  height: 200px;
  overflow: hidden;
}

.scroll-content {
  animation: scroll 10s linear infinite;
}

@keyframes scroll {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%);
  }
}

.scroll-item {
  height: 40px;
  line-height: 40px;
}
</style>

使用 JavaScript 定时器动态更新

通过 setInterval 动态修改数据实现滚动:

<template>
  <div class="scroll-container">
    <div v-for="(item, index) in visibleList" :key="index" class="scroll-item">
      {{ item }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['张三', '李四', '王五', '赵六', '钱七'],
      visibleList: [],
      currentIndex: 0
    };
  },
  mounted() {
    this.updateVisibleList();
    setInterval(() => {
      this.currentIndex = (this.currentIndex + 1) % this.list.length;
      this.updateVisibleList();
    }, 1000);
  },
  methods: {
    updateVisibleList() {
      this.visibleList = [
        ...this.list.slice(this.currentIndex),
        ...this.list.slice(0, this.currentIndex)
      ].slice(0, 3);
    }
  }
};
</script>

使用第三方库(如 vue-seamless-scroll)

对于更复杂的需求,可以使用专门为 Vue 设计的滚动库:

  1. 安装依赖:

    npm install vue-seamless-scroll
  2. 在组件中使用:

    vue实现名单滚动

    
    <template>
    <vue-seamless-scroll
     :data="list"
     class="scroll-container"
     :class-option="scrollOption"
    >
     <div v-for="(item, index) in list" :key="index" class="scroll-item">
       {{ item }}
     </div>
    </vue-seamless-scroll>
    </template>
import vueSeamlessScroll from 'vue-seamless-scroll'; export default { components: { vueSeamlessScroll }, data() { return { list: ['张三', '李四', '王五', '赵六', '钱七'], scrollOption: { direction: 1, limitMoveNum: 3, step: 1, hoverStop: true, singleHeight: 40, waitTime: 1000 } }; } }; ```

注意事项

  • 对于大量数据,建议使用虚拟滚动技术(如 vue-virtual-scroller)优化性能
  • 移动端注意触摸事件的兼容性处理
  • 无限滚动时注意内存管理,避免数据不断堆积

标签: 名单vue
分享给朋友:

相关文章

vue实现流程

vue实现流程

Vue 实现流程的基本步骤 安装 Vue.js 可以通过 CDN 引入或使用 npm/yarn 安装。 CDN 方式: <script src="https://cdn.jsdelivr.…

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…

vue 实现图钉

vue 实现图钉

实现图钉效果的步骤 在Vue中实现图钉(固定位置)效果,可以通过CSS的position: sticky属性或监听滚动事件动态修改元素样式。以下是两种常见方法: 方法一:使用CSS的posi…

vue实现mvvm

vue实现mvvm

Vue 实现 MVVM 模式 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 是其典型实现之一。MVVM 的核心是通过数据绑定和响应式系统实现视图与数据的自动同步。…

vue 实现聊天

vue 实现聊天

使用 Vue 实现聊天功能 创建 Vue 项目并安装依赖 确保已安装 Vue CLI,通过以下命令创建新项目: vue create chat-app 进入项目目录后,安装必要的依赖(如 Socke…

vue实现导出excel实现流程

vue实现导出excel实现流程

安装依赖库 需要安装 xlsx 和 file-saver 库来处理 Excel 文件的生成和保存。通过 npm 或 yarn 安装: npm install xlsx file-saver # 或…