国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery文字輪播特效

2019-11-19 17:37:37
字體:
來源:轉載
供稿:網友

閑談:離開學校那座象牙塔已經也有大半年的事件了,生活中不再充滿了茫然只有忙碌。連續加班加點大半個月,做的活動項目終于算是告一段落了,而今天也將是考驗其真正價值的時候,現在將這次開發中遇到的問題做一下總結。

項目背景: 這次的項目主要是做一次全國酒店人氣排名的營銷活動,主要是基于在微信中傳播,預計訪問量達到億級,并發做到2000+/s,且有不少的容錯預案,我這次主要負責前端首頁方面的展示效果。

功能點:

文字無縫輪播(不要在意為什么在移動端還會有這樣的需求)

當一說到文字無縫滾動時,大家最先想到的是marquee,但是已經好久沒有接觸這個標簽了,w3c也不對其進行維護了,并且還有最后必須等到全部滾動完畢才會再次滾動,并且對于rem布局采用基于px的滾動體驗會非常的
差等等。。

第二個想到的是采用類似jquery實現的圖片輪播機制,可以基本完成,但是發現無論是jquery還是zepto文字在滾動的時候會抖動,可用性比較差。

再就是現在用到的css3 + 少量js,采用很少的代碼就可以實現文字不同長度,文字條數不定的文字無縫滾動輪播。

下面先看html結構

  <div class="outer">    <ul id="J_scroll">      <li>1.這是第一條數據</li>      <li>2.這是第二條數據</li>      <li>3.這是第三條數據</li>      <li>4.這是第四條數據</li>      <li>5.這是第五條數據</li>      <li>1.這是第一條數據</li>     </ul>  </div>

與圖片的無縫滾動一樣,也需要將第一條數據拷貝一份放在最后面

其次是css的相關數據

  .outer{    width: 122px;    height: 80px;    overflow: hidden;  }  .outer ul{    display:inline-block;    height: 80px;    -webkit-transform: translate3d(0, 0, 0); /* 3d渲染,開啟硬件加速 */    transform: translate3d(0, 0, 0);    font-size: 0;  /* 使inline-block無默認間距 */    white-space: nowrap; /* 超出不折行 */  }  .outer ul li{    display: inline-block;    padding-right: 50px;    -webkit-transform: translate3d(0, 0, 0);    transform: translate3d(0, 0, 0);    font-size: 24px;  }  .theanimation{    animation:theanimation 20s infinite linear;    -webkit-animation:theanimation 20s infinite linear;  }  @keyframes theanimation{   from {    transform:translateX(0%);   }    to {    transform:translateX(-100%);   }   }  @-webkit-keyframes theanimation{    from {    -webkit-transform:translateX(0%);   }    to {    -webkit-transform:translateX(-100%);   }  } 

由于IOS的一些渲染機制,最好滾動的元素內部都需要啟動硬件加速,否則會有卡頓和文字顯示不全的問題。

最后是js

  $('#J_scroll').width($('#J_scroll').width() - $('#J_scroll li:first-child').innerWidth());  $('#J_scroll').addClass('theanimation');

這里還是寫的jquery,相信大家都能看的懂,就是讓滾動元素的寬度等于他的內部元素的總寬度減去第一個(或者最后一個)元素的寬度,這樣能保證無縫的效果。

最后要說明為什么要用js動態添加css3的類名實現滾動效果,一開始的時候我也是想直接將css3滾動特效寫在滾動的元素上,但是在iPhone上發現首次加載當前頁面的時候他不會自動滾動。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长沙市| 康保县| 厦门市| 宜宾市| 高邑县| 卢龙县| 马关县| 镇康县| 江达县| 东丰县| 沐川县| 梨树县| 莱西市| 伊吾县| 禄劝| 泰安市| 舞钢市| 金川县| 安多县| 晋中市| 铜川市| 封开县| 桃江县| 宜黄县| 探索| 永安市| 华容县| 额尔古纳市| 辽宁省| 普格县| 忻城县| 民丰县| 高雄县| 曲阳县| 上蔡县| 肥东县| 四子王旗| 神木县| 新巴尔虎右旗| 岐山县| 遂昌县|