当前位置:首页 > 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 实现上下滚动效果 实现上下滚动效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 动画 通过 CSS 的 animation 和 @keyframes 实现简单的上下滚动效果。…

vue实现文字滚动

vue实现文字滚动

Vue 实现文字滚动的方法 使用 CSS 动画实现文字滚动 通过 CSS 的 animation 和 @keyframes 实现文字滚动效果,适用于简单的横向或纵向滚动需求。 <templat…

vue实现文字手写

vue实现文字手写

实现文字手写效果的方法 使用Vue实现文字手写效果可以通过CSS动画或JavaScript库来模拟手写过程。以下是几种常见方法: 使用CSS动画实现 通过@keyframes和clip-path属性…

vue实现文字动态输出

vue实现文字动态输出

Vue 实现文字动态输出 使用 v-html 指令动态渲染 HTML 在 Vue 中可以通过 v-html 指令动态渲染包含 HTML 标签的字符串。适用于需要动态插入带格式的文本场景。 <t…

vue实现图标加文字

vue实现图标加文字

Vue 实现图标加文字的几种方法 在 Vue 中实现图标加文字的常见方式有多种,可以根据项目需求和使用的图标库选择合适的方法。 使用 Element UI 或 Ant Design Vue 等 UI…

vue实现上下循环滚动

vue实现上下循环滚动

实现上下循环滚动的Vue组件 使用CSS动画和Vue的动态绑定实现无限循环滚动效果。以下是一个基础实现方案: <template> <div class="scroll-con…