当前位置:首页 > VUE

vue实现文字上下滚动

2026-02-21 08:28:35VUE

实现文字上下滚动的 Vue 方法

使用 CSS 动画实现

通过 CSS 的 @keyframestransform 实现垂直滚动效果,适用于静态内容。

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

<script>
export default {
  data() {
    return {
      items: ['内容1', '内容2', '内容3', '内容4']
    };
  }
};
</script>

<style>
.scroll-container {
  height: 100px;
  overflow: hidden;
  position: relative;
}

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

@keyframes scroll {
  0% { transform: translateY(0); }
  100% { transform: translateY(-100%); }
}
</style>

使用 JavaScript 动态控制

通过定时器动态修改样式,适合需要动态更新内容的场景。

vue实现文字上下滚动

<template>
  <div class="scroll-container" ref="container">
    <div class="scroll-content" :style="{ transform: `translateY(${offset}px)` }">
      <p v-for="(item, index) in items" :key="index">{{ item }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: ['动态内容1', '动态内容2', '动态内容3'],
      offset: 0,
      timer: null
    };
  },
  mounted() {
    this.startScroll();
  },
  beforeDestroy() {
    clearInterval(this.timer);
  },
  methods: {
    startScroll() {
      const containerHeight = this.$refs.container.clientHeight;
      const contentHeight = this.$refs.container.querySelector('.scroll-content').clientHeight;

      this.timer = setInterval(() => {
        this.offset -= 1;
        if (this.offset <= -contentHeight) {
          this.offset = containerHeight;
        }
      }, 50);
    }
  }
};
</script>

<style>
.scroll-container {
  height: 100px;
  overflow: hidden;
  position: relative;
}
</style>

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

对于复杂需求,可直接使用封装好的滚动组件。

vue实现文字上下滚动

  1. 安装依赖:

    npm install vue-seamless-scroll
  2. 示例代码:

    
    <template>
    <vue-seamless-scroll :data="items" :class-option="options" class="scroll-wrap">
     <ul>
       <li v-for="(item, index) in items" :key="index">{{ item }}</li>
     </ul>
    </vue-seamless-scroll>
    </template>
import vueSeamlessScroll from 'vue-seamless-scroll'; export default { components: { vueSeamlessScroll }, data() { return { items: ['无缝滚动1', '无缝滚动2', '无缝滚动3'], options: { direction: 2, // 0向下 1向上 2向左 3向右 step: 0.5, // 速度 limitMoveNum: 2 // 起始滚动量 } }; } }; .scroll-wrap { height: 100px; overflow: hidden; } ```

注意事项

  • 动态内容需监听数据变化并重置滚动位置。
  • 移动端注意性能优化,避免频繁重绘。
  • 使用 CSS 方案时,内容高度需固定;JavaScript 方案更灵活但需手动控制生命周期。

标签: 上下文字
分享给朋友:

相关文章

vue实现上下翻页

vue实现上下翻页

vue实现上下翻页功能 使用v-for和数组切片 通过v-for渲染当前页数据,结合数组切片实现分页逻辑。data中定义当前页码和每页条数,计算属性返回当前页数据。 data() { retur…

vue实现文字输出

vue实现文字输出

Vue实现文字输出的方法 使用插值表达式 在Vue模板中,可以通过双大括号{{}}插入动态文本。这种方式适合简单的文本绑定。 <template> <div>{{ mes…

vue如何实现文字高亮

vue如何实现文字高亮

实现文字高亮的方法 在Vue中实现文字高亮通常可以通过以下几种方式完成,具体取决于需求场景: 使用v-html指令 通过动态绑定HTML内容,将需要高亮的文字包裹在<span>标签中并…

vue实现公告文字排版

vue实现公告文字排版

Vue 实现公告文字排版的方法 使用 CSS 控制文字样式 通过 CSS 可以轻松控制公告文字的字体、颜色、大小和对齐方式。在 Vue 的 <style> 部分或外部 CSS 文件中定义样…

vue实现上下切换功能

vue实现上下切换功能

实现上下切换功能的方法 在Vue中实现上下切换功能可以通过多种方式完成,以下是几种常见的实现方法。 使用v-for和数组索引控制 通过维护一个数组和当前索引,利用按钮或键盘事件切换显示内容。…

vue实现红包上下

vue实现红包上下

Vue 实现红包上下飘动动画 使用 CSS 动画结合 Vue 动态样式 在 Vue 中可以通过动态绑定样式和类名实现红包上下飘动的效果。定义一个 CSS 动画描述上下移动的关键帧,通过 Vue 控制动…