• logo展示无限平移实现


    直接贴代码:

    <html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script type="text/javascript" src="vue.js"></script>
    </head>
    
    <style>
        /*body{overflow-x: hidden;}*/
        li{
            list-style-type: none;
        }
    #app{
      position: relative;
      width: 100%;
      height: 105%;
      background: linear-gradient(to bottom,#1e405c,#61c7ed);
      margin-top: -0.3em;
      overflow: hidden;
    }
    .suppler-h2{
      text-align: center;
      font-size: 38px;
      color: #facb01;
      padding-top:1.8em;     
    }
    .suppler-p{
      text-align: center;
      font-size: 16px;
      color: #facb01;
      margin-top:-0.5em; 
      padding-bottom: 2.5em;
        
    }
    .img-ul{
      width: 7150px;
      height: 70%;
      margin-top: 3em;
      top: 10px;
    }
    .img-ul li{
      border-radius: 50%;
      box-shadow:0 15px 35px rgba(0,0,0,0.1),0 3px 10px rgba(0,0,0,0.07);
      display: inline-block;
      margin-left: -25px;
      margin-top: 5px;
    }
    .img{
      height: auto;
    }
    @media screen and (max- 1366px) {
      #appVue{
        height: 78%;
      }
    }
    @media screen and (max- 736px) {
      #appVue{
        height: 50%;
      }
      .img-ul{
        width: 7150px;
        height: 70%;
        margin-top: 1em;
        top: 10px;
      }
      .suppler-h2{
        text-align: center;
        font-size: 26px;
        color: #facb01;
        padding-top:1em; 
        padding-bottom: 0.5em;
          
      }
      .suppler-p{
        text-align: center;
        font-size: 16px;
        color: #facb01;
        padding-top:0.5em; 
        padding-bottom: 1em;
          
      }  
    }                    
    </style>
     <script type="text/javascript" src="jquery-3.2.0.min.js"></script>
    <body>
        <div id="app">
          <h2 class="suppler-h2">已入驻商家</h2>
          <p class="suppler-p">业内领先卖家</p>
            <ul class="img-ul" id="ImgUl">
                <!-- 遍历背景图片地址和title,并设置背景图片样式 -->
                <li v-for='src in src' v-bind:title='src.ImgName' :style='{background: src.url,"background-repeat": backgroundRepeat,"background-position": backgroundPosition,"background-size":backgroundSize}'></li>    
            </ul>
        </div>
        <script type="text/javascript">    
            let ImgUrlArrOld = [{"ImgName":"ATQ","url":"url("./logo/ATQ.png")"},{"ImgName":"BCF","url":"url("./logo/BCF.png")"},{"ImgName":"BENSO-RPF","url":"url("./logo/BENSO-RPF.png")"},{"ImgName":"BOSCH","url":"url("./logo/BOSCH.png")"},{"ImgName":"CASE","url":"url("./logo/CASE.png")"},{"ImgName":"CAT","url":"url("./logo/CAT.png")"},{"ImgName":"Cummins","url":"url("./logo/Cummins.png")"},{"ImgName":"DAIDO-METAL","url":"url("./logo/DAIDO-METAL.png")"},{"ImgName":"DAMEIS","url":"url("./logo/DAMEIS.png")"},{"ImgName":"Donaldson","url":"url("./logo/Donaldson.png")"},{"ImgName":"DOOSAN","url":"url("./logo/DOOSAN.png")"},{"ImgName":"Enface","url":"url("./logo/Enface.png")"},{"ImgName":"Garrett","url":"url("./logo/Garrett.png")"},{"ImgName":"GiMPO","url":"url("./logo/GiMPO.png")"},{"ImgName":"GS.BLAZERS","url":"url("./logo/GS.BLAZERS.png")"},{"ImgName":"Henvo","url":"url("./logo/Henvo.png")"},{"ImgName":"HINO","url":"url("./logo/HINO.png")"},{"ImgName":"HITACHI","url":"url("./logo/HITACHI.png")"},{"ImgName":"HJYB","url":"url("./logo/HJYB.png")"},{"ImgName":"HYUNDAI","url":"url("./logo/HYUNDAI.png")"},{"ImgName":"IHI","url":"url("./logo/IHI.png")"},{"ImgName":"ISUZU","url":"url("./logo/ISUZU.png")"},{"ImgName":"JCB","url":"url("./logo/JCB.png")"},{"ImgName":"JiaQing","url":"url("./logo/JiaQing.png")"},{"ImgName":"JOHN DEERE","url":"url("./logo/JOHN DEERE.png")"},{"ImgName":"JOMOK","url":"url("./logo/JOMOK.png")"},{"ImgName":"KATO","url":"url("./logo/KATO.png")"},{"ImgName":"kawasaki","url":"url("./logo/kawasaki.png")"},{"ImgName":"KOBELCO","url":"url("./logo/KOBELCO.png")"},{"ImgName":"KOMAISU","url":"url("./logo/KOMAISU.png")"},{"ImgName":"Koyo","url":"url("./logo/Koyo.png")"},{"ImgName":"KYB","url":"url("./logo/KYB.png")"},{"ImgName":"KZ","url":"url("./logo/KZ.png")"},{"ImgName":"LIEBHERR","url":"url("./logo/LIEBHERR.png")"},{"ImgName":"LISHIDE","url":"url("./logo/LISHIDE.png")"},{"ImgName":"LiuGong","url":"url("./logo/LiuGong.png")"},{"ImgName":"LONKING","url":"url("./logo/LONKING.png")"},{"ImgName":"LOVOL","url":"url("./logo/LOVOL.png")"},{"ImgName":"MAHLE","url":"url("./logo/MAHLE.png")"},{"ImgName":"MITSUBISHI","url":"url("./logo/MITSUBISHI.png")"},{"ImgName":"NOK","url":"url("./logo/NOK.png")"},{"ImgName":"NTN","url":"url("./logo/NTN.png")"},{"ImgName":"PHOSSET","url":"url("./logo/PHOSSET.png")"},{"ImgName":"QFS","url":"url("./logo/QFS.png")"},{"ImgName":"REGAL","url":"url("./logo/REGAL.png")"},{"ImgName":"RIKEN","url":"url("./logo/RIKEN.png")"},{"ImgName":"SAKURA","url":"url("./logo/SAKURA.png")"},{"ImgName":"SANY","url":"url("./logo/SANY.png")"},{"ImgName":"SDLG","url":"url("./logo/SDLG.png")"},{"ImgName":"SHANTUI","url":"url("./logo/SHANTUI.png")"},{"ImgName":"sintery","url":"url("./logo/sintery.png")"},{"ImgName":"ST","url":"url("./logo/ST.png")"},{"ImgName":"SUMITOMO","url":"url("./logo/SUMITOMO.png")"},{"ImgName":"SUNWARD","url":"url("./logo/SUNWARD.png")"},{"ImgName":"TBK-1","url":"url("./logo/TBK-1.png")"},{"ImgName":"TBK","url":"url("./logo/TBK.png")"},{"ImgName":"TOSD","url":"url("./logo/TOSD.png")"},{"ImgName":"VOLVO","url":"url("./logo/VOLVO.png")"},{"ImgName":"XGMA","url":"url("./logo/XGMA.png")"},{"ImgName":"YANMAR","url":"url("./logo/YANMAR.png")"},{"ImgName":"YOUFU","url":"url("./logo/YOUFU.png")"},{"ImgName":"YTM","url":"url("./logo/YTM.png")"},{"ImgName":"YUCHAI","url":"url("./logo/YUCHAI.png")"},{"ImgName":"YXM","url":"url("./logo/YXM.png")"},{"ImgName":"ZEXEL","url":"url("./logo/ZEXEL.png")"},{"ImgName":"ZOOMLION","url":"url("./logo/ZOOMLION.png")"},{"ImgName":"久保田","url":"url("./logo/久保田.png")"},{"ImgName":"佰工","url":"url("./logo/佰工.png")"},{"ImgName":"冠卓","url":"url("./logo/冠卓.png")"},{"ImgName":"山字牌","url":"url("./logo/山字牌.png")"},{"ImgName":"幸佳比","url":"url("./logo/幸佳比.png")"},{"ImgName":"漆先生","url":"url("./logo/漆先生.png")"},{"ImgName":"银钛","url":"url("./logo/银钛.png")"}];
            //生成随机数组
            let ImgUrlArr = new Array();
            while(ImgUrlArr.length<ImgUrlArrOld.length){
                let num = ImgUrlArrOld[Math.floor(Math.random() * ImgUrlArrOld.length)];
                if (ImgUrlArr.indexOf(num)<0) {
                    ImgUrlArr.push(num);
                }
            }    
            let vm = new Vue({
                el:'#app',
                data:{
                    src:ImgUrlArr,
                    backgroundRepeat: 'no-repeat',
                    backgroundPosition: 'center',
                    backgroundSize: '100% 100%',
                },
                // 加载无限平移函数
                methods:{
                    ImgInfiniteRolling: function(){
                        ImgInfiniteRolling(-200,1)
                    },
                },
                //页面模板加载完成后调用无限平移函数
                mounted(){
                    this.ImgInfiniteRolling()
                }
            })
            //无限平移方法封装函数,begin返回尾部的触发值,speed每毫秒平移的速度
            function ImgInfiniteRolling(begin,speed){
                let img = document.getElementById('ImgUl').children;
                let WindowHeight = document.body.clientHeight;
                let WindowWidth = document.body.clientWidth;
                let WindowHeightNum;
                if (WindowHeight>=700) {
                    WindowHeightNum=1;
                }else if(WindowHeight<700){
                    WindowHeightNum=0.75;
                }
                if(WindowWidth<=736){
                    WindowHeightNum=0.52;
                }
                //随机生成logo的left、top、width、height
                for (let i = 0; i<img.length;i++) {
                    let left = i,top;
                    if (i%5==0) {
                        top =  (25*Math.random()+250)*WindowHeightNum;
                        img[i].style.transform = "translate3d("+left+"px,"+top+"px,"+"0)";
                        img[i].style.width = (70*Math.random()+80)*WindowHeightNum+'px';
                        img[i].style.height = img[i].style.width;
                    }else if (i%5==1) {
                        top =  (25*Math.random()-25)*WindowHeightNum;
                        img[i].style.transform = "translate3d("+left+"px,"+top+"px,"+"0)";                  
                        img[i].style.width = (50*Math.random()+100)*WindowHeightNum+'px';
                        img[i].style.height = img[i].style.width;
                    }else if (i%5==2) {
                        top =  (25*Math.random()+175)*WindowHeightNum;
                        img[i].style.transform = "translate3d("+left+"px,"+top+"px,"+"0)";                      
                        img[i].style.width = (40*Math.random()+100)*WindowHeightNum+'px';
                        img[i].style.height = img[i].style.width;
                    }else if (i%5==3) {
                        top =  (25*Math.random()+325)*WindowHeightNum;
                        img[i].style.transform = "translate3d("+left+"px,"+top+"px,"+"0)";                      
                        img[i].style.width = (70*Math.random()+80)*WindowHeightNum+'px';
                        img[i].style.height = img[i].style.width;
                    }else if (i%5==4) {
                        top =  (25*Math.random()+80)*WindowHeightNum;
                        img[i].style.transform = "translate3d("+left+"px,"+top+"px,"+"0)";                      
                        img[i].style.width = (70*Math.random()+80)*WindowHeightNum+'px';
                        img[i].style.height = img[i].style.width;
                    }
                    TimeSet(img[i],begin,speed);
                }
                //最后一个logo的位置,传递给平移函数,判断末尾衔接位置
                let endLeft = img[img.length-1].offsetLeft + img[img.length-1].offsetWidth*0.3;
                //无限循环调用平移函数
                function TimeSet(img,begin,speed) {             
                    setInterval(function (){ImgFun(img,endLeft,begin,speed);}, 100);
                }
                //平移函数,设置平移起点begin,平移速度speed    
                function ImgFun(img,endLeft,begin,speed) {
                    //获取transform属性,并解析成X,Y轴数值
                    let translates = document.defaultView.getComputedStyle(img,null).transform;
                    let translateX = parseFloat(translates.substring(6).split(',')[4]);
                    let tanslateY = parseFloat(translates.substring(6).split(',')[5]);
                    begin = begin-img.offsetLeft;
                    if (translateX>begin) {
                        translateX = translateX-speed;
                        img.style.transform = "translate3d("+translateX+"px,"+tanslateY+"px,"+"0)";
                    }else if (translateX<=begin) {
                        translateX = endLeft-img.offsetLeft;
                        img.style.transform = "translate3d("+translateX+"px,"+tanslateY+"px,"+"0)"; 
                    }       
                }           
            }           
        </script>
    </body>
    </html>
  • 相关阅读:
    Java基础学习02--I/O字符流
    MacOS系统Web服务器
    git学习01--git基本命令
    dokcer学习02--Docker Compose基本使用
    dokcer学习01--docker安装(MacOS)与基本命令
    JVM学习01--JVM结构与代码存储位置
    奈氏准则和香农定理
    物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)
    计算机网络第一章小结
    TCP/IP参考模型(应用层、传输层、网际层、网络接口层)、五层参考模型(应用层、传输层、网络层、数据链路层、物理层)、OSI与TCP/IP参考模型比较
  • 原文地址:https://www.cnblogs.com/webwangjie/p/11338632.html
Copyright © 2020-2023  润新知