亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

用CSS3實現無限循環的無縫滾動的實例代碼

2024-07-11 08:58:28
字體:
來源:轉載
供稿:網友

有時候在頁面的某個模塊中,需要無限循環的滾動一些消息。那么如果我們用js實現無縫銜接滾動的思路是什么呢(比如我們這個模塊是向上滾動的)?

  1. 克隆A一份完全一樣的數據B放在原數據A的后面;
  2. 使用setInterval向上滾動A的父級容器;
  3. 當向上滾動的距離L正好的A的高度時(L==A.height()),L=0,重新開始滾動,無限循環。

克隆一份數據放在后面,是為了當A向上移動時,后面有數據能填補漏出來的空白。當B移動到可視區域的頂部時,此時A剛好移出可視區域,那么此時將容器重新歸0,用戶是沒有感知的,以為還是B中的第一條數據。然后繼續向上滾動。

1. 使用CSS3來實現

若要用CSS3的屬性實現的話,非animation莫屬,因為transition是需要手動的觸發,而且不能無限次執行下去,而animation恰好能解決這個問題。

假如數據是在寫死的情況下時,我們完全可以手動復制一份數據放在后面,然后把原數據的高度寫到css中,實現的思路與上面的一樣:

css:

@keyframes rowup {    0% {        -webkit-transform: translate3d(0, 0, 0);        transform: translate3d(0, 0, 0);    }    100% {        -webkit-transform: translate3d(0, -307px, 0);        transform: translate3d(0, -307px, 0);    }}.list{    width: 300px;    border: 1px solid #999;    margin: 20px auto;    position: relative;    height: 200px;    overflow: hidden;}.list .rowup{    -webkit-animation: 10s rowup linear infinite normal;    animation: 10s rowup linear infinite normal;    position: relative;}

html:

<div class="list">    <div class="cc rowup">        <div class="item">1- 121233fffffr國家認可更健康進口價格困擾</div>        <div class="item">2- 3123233</div>        <div class="item">3- 個人口結構俄跨入國際科技館客人感覺</div>        <div class="item">4- ggrgerg</div>        <div class="item">5- fvdgdv</div>        <div class="item">6- 德國南部巴士與卡車相撞起火 31人受傷11人死亡樸槿惠庭審時突然昏迷 支持者:她死了法官要負責!</div>        <div class="item">7- 外交部再次回應印軍越界:要求立即將越界部隊撤回</div>  <div class="item">8- 德國網紅致信默克爾</div>     <div class="item">9- 國資委原</div>        <div class="item">1- 121233fffffr國家認可更健康進口價格困擾</div>        <div class="item">2- 3123233</div>        <div class="item">3- 個人口結構俄跨入國際科技館客人感覺</div>        <div class="item">4- ggrgerg</div>        <div class="item">5- fvdgdv</div>        <div class="item">6- 德國南部巴士與卡車相撞起火 31人受傷11人死亡樸槿惠庭審時突然昏迷 支持者:她死了法官要負責!</div>        <div class="item">7- 外交部再次回應印軍越界:要求立即將越界部隊撤回</div>        <div class="item">8- 德國網紅致信默克爾</div>     <div class="item">9- 國資委原</div>    </div></div>

運行的效果如下:

2. 數據不確定時

在上面的小節中,數據是死的,高度也是寫死到了CSS3中??墒侨绻麖慕涌讷@取到的數據個數不定呢,每條數據的長度也不確定,怎么辦呢?

這里就需要根據數據來重新計算高度,并寫到CSS里,可是keyframes修改起來還比較麻煩,那么我們就用覆蓋的方式來重新keyframes中的數據:

// 設置keyframes屬性function addKeyFrames(y){    var style = document.createElement('style');    style.type = 'text/css';    var keyFrames = '/    @-webkit-keyframes rowup {/        0% {/            -webkit-transform: translate3d(0, 0, 0);/            transform: translate3d(0, 0, 0);/        }/        100% {/            -webkit-transform: translate3d(0, A_DYNAMIC_VALUE, 0);/            transform: translate3d(0, A_DYNAMIC_VALUE, 0);/        }/    }/    @keyframes rowup {/        0% {/            -webkit-transform: translate3d(0, 0, 0);/            transform: translate3d(0, 0, 0);/        }/        100% {/            -webkit-transform: translate3d(0, A_DYNAMIC_VALUE, 0);/            transform: translate3d(0, A_DYNAMIC_VALUE, 0);/        }/    }';    style.innerHTML = keyFrames.replace(/A_DYNAMIC_VALUE/g, y);    document.getElementsByTagName('head')[0].appendChild(style);}

計算出原始數據A的高度后,執行 addKeyFrames 方法,往head中添加css屬性,那么這里的rowup就會覆蓋掉之前設置的,每次滾動的距離就是數據A的高度:

function init(){    var data = '塞下秋來風景異,衡陽雁去無留意。四面邊聲連角起,千嶂里,長煙落日孤城閉。濁酒一杯家萬里,燕然未勒歸無計。羌管悠悠霜滿地,人不寐,將軍白發征夫淚。', //樣例數據        data_len = data.length,        len = parseInt(Math.random()*6)+6, // 數據的長度        html = '<div class="ss">';        for(var i=0; i<len; i++){        var start = parseInt( Math.random()*(data_len-20) ),            s = parseInt( Math.random()*data_len );        html += '<div class="item"v>'+i+'- '+data.substr(start, s)+'</div>';    }    html += '</div>';    document.querySelector('.list .cc').innerHTML = html+html; // 復制一份數據    var height = document.querySelector('.list .ss').offsetHeight; // 一份數據的高度    addKeyFrames( '-'+height+'px' ); // 設置keyframes    document.querySelector('.list .cc').className += ' rowup'; // 添加 rowup}init(); 

3. 橫向滾動

上面講解的都是向上滾動,那么向左,向右,向下也比較容易理解了,把transform中的值更改為對應的數值即可。

4. 總結

使用CSS來進行動畫的展示,會讓頁面顯得更加流暢。如果能用CSS實現,可以嘗試盡量用CSS實現下

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品久久久| 精品国偷自产在线视频| 青青在线视频一区二区三区| 久久久亚洲国产天美传媒修理工| 欧美又大粗又爽又黄大片视频| 欧美午夜精品久久久久久浪潮| 欧美理论在线观看| 国产福利精品av综合导导航| 日韩在线视频一区| 日韩av免费看| 欧美风情在线观看| 精品久久在线播放| 欧日韩在线观看| 国产精品香蕉在线观看| 亚洲精品国产综合区久久久久久久| 精品中文字幕在线| 国产精品日韩电影| 日韩经典中文字幕在线观看| 亚洲美女激情视频| 毛片精品免费在线观看| 欧洲成人免费aa| 一本色道久久88精品综合| 亚洲free嫩bbb| 久久精品男人天堂| 最新中文字幕亚洲| 久久夜色精品国产欧美乱| 亚洲美女av黄| 亚洲伊人第一页| 亚洲第一区第一页| 国模极品一区二区三区| 欧美一级在线播放| 日韩中文字幕视频在线观看| 亚洲女人天堂色在线7777| 国产91久久婷婷一区二区| 最新中文字幕亚洲| 欧美激情第6页| 亚洲国产日韩欧美综合久久| 久久五月天综合| 成人免费淫片视频软件| 国产精品入口免费视频一| 亚洲曰本av电影| 日韩欧美视频一区二区三区| 久久人人爽人人爽人人片av高请| 狠狠色噜噜狠狠狠狠97| 中文字幕日韩av综合精品| 国产美女搞久久| 亚洲精品福利在线| 国外成人在线直播| 日韩成人久久久| 国产精品一区专区欧美日韩| 色噜噜狠狠色综合网图区| 国产99久久精品一区二区永久免费| 精品久久久久久久久久久久久久| 亚洲www永久成人夜色| 97在线观看免费高清| 亚洲美女av电影| 一区二区三区 在线观看视| 成人黄色在线观看| 欧美疯狂xxxx大交乱88av| 久久久999精品视频| 国产精品亚洲片夜色在线| 夜夜狂射影院欧美极品| 国产原创欧美精品| 亚洲第一免费播放区| 4444欧美成人kkkk| 国产视频久久网| 日韩视频在线免费| 日本欧美一二三区| 欧美大全免费观看电视剧大泉洋| 日韩欧美亚洲范冰冰与中字| 国产欧美日韩高清| 日韩在线观看免费网站| 久久久久久久国产精品视频| 日韩av网址在线观看| 中文字幕无线精品亚洲乱码一区| 国产成人精品免费视频| 色妞欧美日韩在线| 欧美日韩视频在线| 日韩美女视频免费在线观看| 国产女精品视频网站免费| 懂色av影视一区二区三区| 57pao成人永久免费视频| 日本成熟性欧美| 欧美黑人一级爽快片淫片高清| 国产精品99久久久久久www| 日韩三级成人av网| 国产一区二区三区久久精品| 日韩精品丝袜在线| 亚洲九九九在线观看| 热re99久久精品国产66热| 欧美一区深夜视频| 欧美疯狂性受xxxxx另类| 国产精品普通话| 欧美日韩综合视频网址| 中文字幕一区日韩电影| 一本色道久久综合狠狠躁篇怎么玩| 亚洲最大av在线| 精品国产鲁一鲁一区二区张丽| 人人爽久久涩噜噜噜网站| 亚洲欧洲日产国产网站| 中文国产成人精品久久一| 国产又爽又黄的激情精品视频| 欧美精品情趣视频| 亚洲精品资源在线| 日韩风俗一区 二区| 97国产精品视频人人做人人爱| 国产成人亚洲综合| 亚洲a级在线播放观看| 97成人精品视频在线观看| 国产精品久久久久久久久久小说| 亚洲精品在线91| 91久久久精品| 久久成人一区二区| 成人黄色片在线| 欧美在线视频网站| 38少妇精品导航| 国产精品高潮呻吟久久av黑人| 欧美黑人性视频| 亚洲天堂色网站| 欧美理论电影在线观看| 亚洲一级免费视频| 久久精品国产亚洲一区二区| 日韩av免费一区| 国产91精品最新在线播放| 国产精品久久综合av爱欲tv| 国内精品国产三级国产在线专| 中文字幕日韩精品在线观看| 亚洲少妇中文在线| 国产精品久久久久999| 最近2019年手机中文字幕| 日韩精品在线观看网站| 亚洲一级片在线看| 欧美成人国产va精品日本一级| 高潮白浆女日韩av免费看| 伊人青青综合网站| 91网站免费观看| 日韩一区二区精品视频| 亚洲精品国产精品久久清纯直播| 色综合老司机第九色激情| 午夜精品国产精品大乳美女| 亚洲人成在线一二| 久久久女人电视剧免费播放下载| 伊人亚洲福利一区二区三区| 欧美成人精品在线播放| 久热精品视频在线| 亚洲国产精彩中文乱码av| 一本色道久久88精品综合| 亚洲精品国产精品国自产观看浪潮| 92看片淫黄大片欧美看国产片| 77777亚洲午夜久久多人| 欧美性猛交视频| 亚洲高清久久网| 97av在线视频免费播放| 亚洲欧美日韩中文在线| 中文字幕亚洲激情| 日本高清不卡的在线| 欧美亚洲午夜视频在线观看| 精品视频在线播放色网色视频| 成人亚洲欧美一区二区三区| 伊人久久久久久久久久久| 欧美孕妇毛茸茸xxxx| 亚洲女成人图区| 在线播放国产一区中文字幕剧情欧美| 精品高清美女精品国产区|