{{text.val}}

当前位置:   article > 正文

vue实现公告栏文字上下滚动效果_vue2 公告栏文字滚动

vue2 公告栏文字滚动
  1. <template>
  2. <div>
  3. <h2>公告栏文字停顿滚动</h2>
  4. <div class="textBox">
  5. <transition name="slide">
  6. <p class="text" :key="text.id">{{text.val}}</p>
  7. </transition>
  8. </div>
  9. </div>
  10. </template>
  11. <script>
  12. export default {
  13. name: 'scroll',
  14. data () {
  15. return {
  16. textArr: [
  17. '1 第一条公告',
  18. '2 第二条公告第二条公告',
  19. '3 第三条公告第三条公告第三条公告'
  20. ],
  21. number: 0
  22. }
  23. },
  24. computed: {
  25. text () {
  26. return {
  27. id: this.number,
  28. val: this.textArr[this.number]
  29. }
  30. }
  31. },
  32. mounted () {
  33. this.startMove()
  34. },
  35. methods: {
  36. startMove () {
  37. // eslint-disable-next-line
  38. let timer = setTimeout(() => {
  39. if (this.number === 2) {
  40. this.number = 0;
  41. } else {
  42. this.number += 1;
  43. }
  44. this.startMove();
  45. }, 2000); // 滚动不需要停顿则将2000改成动画持续时间
  46. }
  47. }
  48. }
  49. </script>
  50. <style scoped>
  51. h2 {
  52. padding: 20px 0
  53. }
  54. .textBox {
  55. width: 100%;
  56. height: 40px;
  57. margin: 0 auto;
  58. overflow: hidden;
  59. position: relative;
  60. text-align: center;
  61. }
  62. .text {
  63. width: 100%;
  64. position: absolute;
  65. bottom: 0;
  66. }
  67. .slide-enter-active, .slide-leave-active {
  68. transition: all 0.5s linear;
  69. }
  70. .slide-enter{
  71. transform: translateY(20px) scale(1);
  72. opacity: 1;
  73. }
  74. .slide-leave-to {
  75. transform: translateY(-20px) scale(0.8);
  76. opacity: 0;
  77. }
  78. </style>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/700487
推荐阅读
相关标签