• vue实现无缝滚动


    vue实现无缝滚动

    标签部分

        <div style="height: 260px;  50%;display: inline-block;float: right; overflow: hidden;">
           <ul id="con1" ref="con1" :class="{anim:animate==true}" >
              <li style="border:  1px solid red;height: 84px" v-for='item in items'>{{item.name}}</li>
           </ul>
        </div>
    

    脚本设置

    <script>
     export default {
    data() {
      return {
          animate:false,
          items:[
              {name:"霸气外露的xxx体育工作1"},
              {name:"霸气外露的xxx体育工作2"},
              {name:"霸气外露的xxx体育工作3"},
              {name:"霸气外露的xxx体育工作4"},
              {name:"霸气外露的xxx体育工作5"},
              {name:"霸气外露的xxx体育工作6"},
              {name:"霸气外露的xxx体育工作7"},
          ]
      }
    },
    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)
        }
    }
    }
    </script>
    

    样式设置

    <style>
    *{
        margin: 0 ;
        padding: 0;
    }
    #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;
    }
    </style>
    

    实现效果

    效果图片

    楼主对代码做了一些小改动,使其应用到实例中更为方便

    本文链接:https://blog.csdn.net/yanby921005/article/details/80283028

  • 相关阅读:
    Linux-Rsync文件同步
    Linux-PPTP服务器搭建
    Excle破解忘记保护密码的方法。
    Linux-多维度服务器调优
    postman测试钉钉审批接口
    linux 常用服务器部署
    DRF
    15.ES6模块
    14.class类
    13. async用法
  • 原文地址:https://www.cnblogs.com/nanstar/p/11912275.html
Copyright © 2020-2023  润新知