亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

最簡單的無縫輪播

Kyxy / 1867人閱讀

摘要:昨天學(xué)習(xí)了輪播的原理,今天再來看看無縫輪播的技術(shù)。無縫輪播無縫輪播的原來大致類似小時候跳大繩,小朋友一個個進(jìn)入,一個個出來,出來后排到隊(duì)伍末尾,等在著進(jìn)入,無縫輪播也類似這種機(jī)制。

昨天學(xué)習(xí)了輪播的原理,今天再來看看無縫輪播的技術(shù)。

昨天學(xué)習(xí)的輪播機(jī)制類似于走馬燈,所有圖片排成一排,輪流在你眼前走過,你就會感覺他們動起來了,今天學(xué)的無縫輪播就不能用昨天的思路了,它和昨天最大的區(qū)別是,從最后一張回到第一張是直接切換的,不是先回到第一張圖片的位置,然后再往后切換。

無縫輪播

無縫輪播的原來大致類似小時候跳大繩,小朋友一個個進(jìn)入,一個個出來,出來后排到隊(duì)伍末尾,等在著進(jìn)入,無縫輪播也類似這種機(jī)制。

用昨天的思路寫CSS,對圖片用display:flex布局,你會發(fā)現(xiàn)圖片永遠(yuǎn)是一字排開的,第二張一直在第一張后面,當(dāng)你用transform: translateX(-100%)第一張往左移動,第二張的位置會受到影響,這樣就實(shí)現(xiàn)不了我們想要的效果;我們想要的效果是每張都是獨(dú)立,不能互相影響,所以這個CSS也不能這樣寫。


所以每張圖片應(yīng)該用絕對定位來實(shí)現(xiàn),那它的父元素就要用相對定位來做了


用JS 來控制圖片移動的動畫,當(dāng)png1 向左移動時,png2也要向左移動(加上過渡動畫),因?yàn)閮蓚€動畫先后執(zhí)行時間過短,瀏覽器會默認(rèn)同時進(jìn)行,所以用setTimeout()設(shè)置一個定時器,在時間到后執(zhí)行一段代碼或者函數(shù)

setTimeout(function(){
    $("#images > .png1").css({transform:"translateX(-100%)"}); //png1向左移動100%
    $("#images > .png2").css({transform:"translateX(-100%)"});  //png2也向左移動100%
},3000)

setTimeout(function{
    $("#images > .png2").css({transform:"translateX(-200%)"}); //png2在向左移動100%,這里就變成200%
    $("#images > .png3").css({transform:"translateX(-100%)"}); //png3也向左移動100%
},6000)

第一個定時器3s后執(zhí)行,png1 向左移動同時png2 也在向左移動;第二定時器6s后執(zhí)行,png2 向左移動的同時png3 也向左移動,這就實(shí)現(xiàn)了第一輪的輪播,那怎樣讓它循環(huán)播放呢?

在第一個定時器執(zhí)行的時候,png1 向左移動后,在視窗的左邊,我們已經(jīng)讓它跑到視窗的右邊待命,讓png3 向左右的同時png1 也向左移動。


setTimeout(function(){
    $("#images > .png1").css({transform:"translateX(-100%)"});
    $("#images > .png2").css({transform:"translateX(-100%)"});
    $("#images > .png1").one("transitionend",function(e){
        $(e.currentTarget).addClass("right").css({transform:"none"})        //當(dāng)png1動畫執(zhí)行結(jié)束之后,給它添加一個class,讓它跑到右邊待命,這里面要把左移的css給干掉,不然它會一直在那里
    });
},3000)

transitionend會在CSStransition動畫結(jié)束后出發(fā)。
one處理函數(shù)在每個元素上每種事件類型最多執(zhí)行一次。

這里用on,你會發(fā)現(xiàn)一個問題,當(dāng)動畫結(jié)束后,它就會把right給加上去,導(dǎo)致用于在右邊,所以這里要把on改成one。

整理下上面寫的代碼



上面代碼可以實(shí)現(xiàn)一輪播放,如果要一直循環(huán)下去,多加幾輪,或者用for循環(huán)去做。

本次用到了兩個新的API:

transitionend會在CSStransition動畫結(jié)束后出發(fā)。

one處理函數(shù)在每個元素上每種事件類型最多執(zhí)行一次。

總結(jié):

做無縫輪播的關(guān)鍵是隊(duì)列,圖片1動作的同時圖片2也要動作,并且在動畫結(jié)束之后去圖片3后面待命,跟著圖片3一起動作,就這樣一直循環(huán)下去,就能實(shí)現(xiàn)無縫輪播了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/95146.html

相關(guān)文章

  • 無縫輪播一種方式原理

    摘要:無縫輪播的原理在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就如同無縫一般。 之前面試被問到這個問題,之前都是隨便找大神插件,知道怎么去做,但是一直沒實(shí)現(xiàn)過。 無縫輪播的原理 在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就...

    MudOnTire 評論0 收藏0
  • 無縫輪播一種方式原理

    摘要:無縫輪播的原理在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就如同無縫一般。 之前面試被問到這個問題,之前都是隨便找大神插件,知道怎么去做,但是一直沒實(shí)現(xiàn)過。 無縫輪播的原理 在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就...

    AlienZHOU 評論0 收藏0
  • 無縫輪播一種方式原理

    摘要:無縫輪播的原理在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就如同無縫一般。 之前面試被問到這個問題,之前都是隨便找大神插件,知道怎么去做,但是一直沒實(shí)現(xiàn)過。 無縫輪播的原理 在滾動層前后分別插入最后一個元素和最前面一個元素,然后在動畫滾到最后或者最前的時候,初始化滾動層的位置樣式,速度很快,無法察覺,就...

    BicycleWarrior 評論0 收藏0
  • 無縫輪播

    摘要:無縫輪播工作中遇到輪播怎么辦千萬不要自己寫輪播我們學(xué)這么多基礎(chǔ)是為了能夠看懂大神的代碼然后用大神的代碼因?yàn)槿绻约簩懸粋€輪播就可能出現(xiàn)各種各樣的如果是在工作中這樣做無異于浪費(fèi)自己的時間降低工作效率最好的方法是直接用大神寫好的源碼然后看使用文 無縫輪播 工作中遇到輪播怎么辦?千萬不要自己寫輪播我們學(xué)這么多基礎(chǔ)是為了能夠看懂大神的代碼,然后用大神的代碼因?yàn)槿绻约簩?一個輪播,就可能出現(xiàn)各...

    xiaochao 評論0 收藏0
  • 從零開始寫一個輪播

    摘要:什么是輪播輪播,英文,也就是幻燈片的意思,我們可以手動或者自動切換一張張的照片達(dá)到顯示的目的。怎么實(shí)現(xiàn)一個輪播一般,我們可以兩種方法來實(shí)現(xiàn)輪播,例如,核心思路使用透明度來切換照片,使用距離來平移照片。 什么是輪播 輪播,英文slider,也就是幻燈片的意思,我們可以手動或者自動切換一張張的照片達(dá)到顯示的目的。各大電商網(wǎng)站都會使用輪播來展示商品,可以在相對較小的空間里,實(shí)現(xiàn)多種展示。 怎...

    olle 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<