真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Html5怎么在移動端實現(xiàn)一個無縫滾動動畫

使用Html5怎么在移動端實現(xiàn)一個無縫滾動動畫?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了梅里斯免費建站歡迎大家使用!

html骨架

其實很簡單,最外面的

是做固定的窗口,里面的
    控制運動,
  • 里面是展示動畫

    
        
               
    • 第一個結(jié)構(gòu)
    •          
    • 第二個結(jié)構(gòu)
    •          
    • 第三個結(jié)構(gòu)
    •          
    • 第四個結(jié)構(gòu)
    •          
    • 第五個結(jié)構(gòu)
    •          
    • 第六個結(jié)構(gòu)
    •          
    • 第七個結(jié)構(gòu)
    •          
    • 第八個結(jié)構(gòu)
    •     

基本css樣式

先把基本的css樣式實現(xiàn)

*{
    margin:0;
    padding:0;
}
.roll{
    margin: 100px auto;
    width: 200px;
    height: 40px;
    overflow:hidden;
    border: 1px solid aquamarine;
}
.roll ul{
    list-style: none;
}
.roll li{
    line-height:20px;
    font-size:14px;
    text-align:center;
}

可以看看大致的樣式:

使用Html5怎么在移動端實現(xiàn)一個無縫滾動動畫

實現(xiàn)思路

一、使用jquery的animate動畫

animate()方法

$(selector).animate(styles,speed,easing,callback)

參數(shù):
styles:必需參數(shù),需要產(chǎn)生動畫的css樣式(使用駝峰式命名)
speed: 規(guī)定動畫的速度
@number:1000(ms)
@string:"slow","normal","fast"
easing:動畫速度(swing,linear)
callback:函數(shù)執(zhí)行完之后的回調(diào)函數(shù)

$(document).ready(function(){
            setInterval(function(){  // 添加定時器,每1.5s進行轉(zhuǎn)換
                $("#roll").find("ul:first").animate({
                        marginTop:"-40px"  //每次移動的距離
                },500,function(){   // 動畫運動的時間
                        //$(this)指的是ul對象,
                        //ul復(fù)位之后把第一個元素和第二個元素插入
                        //到ul的最后一個元素的位置
                        $(this).css({marginTop:"0px"}).find("li:first").appendTo(this);
                        $(this).find("li:first").appendTo(this);
                });
            },1500)
        });

看看效果:

使用Html5怎么在移動端實現(xiàn)一個無縫滾動動畫

二、使用css3的animation動畫

通過css3中的關(guān)鍵幀,可以得到跳步的效果。先通過一個短的看一下思路。

初步

1.如果是寫死的獲獎,那么需要把前面的那個復(fù)制一份到后面去,如果是一個一個滾動那么就復(fù)制第一個,如果是兩個兩個滾動的就復(fù)制第一個和第二個。


        
                 
  • 第一個結(jié)構(gòu)
  •              
  • 第二個結(jié)構(gòu)
  •              
  • 第三個結(jié)構(gòu)
  •              
  • 第四個結(jié)構(gòu)
  •              
  • 第五個結(jié)構(gòu)
  •              
  • 第六個結(jié)構(gòu)
  •              
  • 第七個結(jié)構(gòu)
  •              
  • 第八個結(jié)構(gòu)
  •              
  • 第一個結(jié)構(gòu)
  •              
  • 第二個結(jié)構(gòu)
  •         

2.然后計算需要滾動多少次,一次多少秒,例子是兩個兩個滾動,需要5s,所以css3的animation的時間是5s。那么@keyframe需要分成幾份呢?因為是停頓,每一個滾動都需要兩份,最后一個要跳動所以只有一份,所以需要5 * 2 - 1 = 9份,看代碼就曉得了:

/*這里不做兼容性處理*/
.roll ul{
    list-style: none;
    animation: ani 5s  linear infinite;  /*動畫ani,5s,循環(huán)勻速播放*/
}
@keyframes ani{  
    0%{
        margin-top: 0;
    }
    12.5%{
        margin-top: 0;
    }
    25%{
        margin-top: -40px;
    }
    37.5%{
        margin-top: -40px;
    }
    50%{
        margin-top: -80px;
    }
    62.5%{
        margin-top: -80px;
    }
    75%{
        margin-top: -120px;
    }
    87.5%{
        margin-top: -120px;
    }
    100%{
        margin-top: -160px; /*最后是一個,這樣可以打斷動畫*/
    }
}

進階

如果個數(shù)不確定,那么就需要動態(tài)的計算,用js動態(tài)地添加@keyframes ,到時候只要自己可以計算清楚間隔還有移動的距離就好。

1.首先獲取

  • 的長度length
    2.然后計算間隔百分比,因為有停頓所以記得要用秒數(shù)×2
    3.然后用字符串拼寫@keyframes,0~length,包括length,因為多一個,雙數(shù)和單數(shù)分開。
    4.把
      中的第一個和第二個克隆到
        的最后
        5.創(chuàng)建一個
          <thead id="kxaht"></thead>

          <blockquote id="kxaht"><font id="kxaht"><em id="kxaht"></em></font></blockquote>