zoukankan      html  css  js  c++  java
  • vue实现消息的无缝滚动效果

    JS

    export default {
    data() {
      return {
          animate:false,
          items:[
              {name:"马云"},
              {name:"雷军"},
              {name:"王勤"}
          ]
      }
    },
    created(){
        setInterval(this.scroll,1000)
    },
    methods: {
        scroll(){
           this.animate=true;    // 因为在消息向上滚动的时候需要添加css3过渡动画,所以这里需要设置true
           setTimeout(()=>{      //  这里直接使用了es6的箭头函数,省去了处理this指向偏移问题,代码也比之前简化了很多
                   this.items.push(this.items[0]);  // 将数组的第一个元素添加到数组的
                   this.items.shift();               //删除数组的第一个元素
                   this.animate=false;  // margin-top 为0 的时候取消过渡动画,实现无缝滚动
           },500)
        }
    }
    

    CSS

    #box{
         300px;
        height: 32px;
        overflow: hidden;
        padding-left: 30px;
        border: 1px solid black;
    }
    .anim{
        transition: all 0.5s;
        margin-top: -30px;
    }
    #con1 li{
        list-style: none;
        line-height: 30px;
        height: 30px;
    }

    HTML

    <div id="box">
                <ul id="con1" ref="con1" :class="{anim:animate==true}">
                    <li v-for='item in items'>{{item.name}}</li>
                </ul>
    </div>
    

      

  • 相关阅读:
    VBA trouble
    深入浅出Automation Anywhere
    sqlserver--install/uninstall
    linux遇到的问题
    Java并发编程:线程池的使用(转载)
    java——线程
    关于项目管理工具 maven
    从xml文件取值
    jquery
    小结-9.20
  • 原文地址:https://www.cnblogs.com/chenyablog/p/11881745.html
Copyright © 2011-2022 走看看