当前位置:   article > 正文

vue 实现多条文本数据在一行显示 自动循环滚动 第一条数据 连接 第二条数据 不要定时切换_vue实现文本上下循环滚动

vue实现文本上下循环滚动
  1. <template>
  2. <div class="scroll-text">
  3. <p class="text-inner">{{ scrollText }}</p>
  4. </div>
  5. </template>
  1. export default {
  2. data() {
  3. return {
  4. textList: ["文本1", "文本2", "文本3"], // 后台传递的文本数据
  5. currentIndex: 0, // 当前展示的文本索引
  6. };
  7. },
  8. computed: {
  9. //返回当前文本与下一个文本的组合。
  10. scrollText() {
  11. /*
  12. 将从 newsWordage 数组中获取当前索引 (currentIndex) 对应的文本,
  13. 并将其赋值给 currentText 变量。如果获取到的值为 undefined 或 null,则将空字符串赋值给 currentText。
  14. */
  15. const currentText = this.newsWordage[this.currentIndex] || ''
  16. /*
  17. 计算了下一个索引的值(nextIndex),使用了取模运算符 % 来确保索引值在 newsWordage 数组的有效范围内循环。
  18. 如果当前索引是数组的最后一个元素,则下一个索引是数组的第一个元素。
  19. */
  20. const nextIndex = (this.currentIndex + 1) % this.newsWordage.length
  21. // 把下一个文本赋值给nextText
  22. const nextText = this.newsWordage[nextIndex] || ''
  23. // 拼接上下两个文本
  24. return `${currentText} ${nextText}`
  25. },
  26. },
  27. }
  1. .scroll-text {
  2. width: 100%;
  3. height: 30px; /* 根据实际需求调整高度 */
  4. overflow: hidden;
  5. }
  6. .text-inner {
  7. animation: scroll 10s linear infinite; /* 根据实际需求调整滚动速度和持续时间 */
  8. white-space: nowrap;
  9. padding-top: 5px; /* 根据实际需求调整内边距 */
  10. }
  11. // 滚动的方向
  12. @keyframes scroll {
  13. from { transform: translateX(0); }
  14. to { transform: translateX(-100%); }
  15. }

在上述代码中,我们将scrollText计算属性用于生成当前要显示的文本,将当前文本和下一条文本连接起来,并利用CSS动画实现文字滚动效果。通过在scroll-keyframes中指定 transform: translateX(-100%);来控制滚动的方向和距离。

使用这种方法,文本会不断滚动,第二条数据接续在第一条数据的后面形成循环滚动效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/700509
推荐阅读
相关标签
  

闽ICP备14008679号