欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery文字輪播特效

 更新時(shí)間:2017年02月12日 16:24:39   作者:一半水一半冰  
本文給大家分享的是jQuery制作文字輪播的特效,非常的實(shí)用,屬于作者原創(chuàng)代碼,分享給大家

閑談:離開學(xué)校那座象牙塔已經(jīng)也有大半年的事件了,生活中不再充滿了茫然只有忙碌。連續(xù)加班加點(diǎn)大半個(gè)月,做的活動(dòng)項(xiàng)目終于算是告一段落了,而今天也將是考驗(yàn)其真正價(jià)值的時(shí)候,現(xiàn)在將這次開發(fā)中遇到的問題做一下總結(jié)。

項(xiàng)目背景: 這次的項(xiàng)目主要是做一次全國酒店人氣排名的營銷活動(dòng),主要是基于在微信中傳播,預(yù)計(jì)訪問量達(dá)到億級(jí),并發(fā)做到2000+/s,且有不少的容錯(cuò)預(yù)案,我這次主要負(fù)責(zé)前端首頁方面的展示效果。

功能點(diǎn):

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

當(dāng)一說到文字無縫滾動(dòng)時(shí),大家最先想到的是marquee,但是已經(jīng)好久沒有接觸這個(gè)標(biāo)簽了,w3c也不對(duì)其進(jìn)行維護(hù)了,并且還有最后必須等到全部滾動(dòng)完畢才會(huì)再次滾動(dòng),并且對(duì)于rem布局采用基于px的滾動(dòng)體驗(yàn)會(huì)非常的
差等等。。

第二個(gè)想到的是采用類似jquery實(shí)現(xiàn)的圖片輪播機(jī)制,可以基本完成,但是發(fā)現(xiàn)無論是jquery還是zepto文字在滾動(dòng)的時(shí)候會(huì)抖動(dòng),可用性比較差。

再就是現(xiàn)在用到的css3 + 少量js,采用很少的代碼就可以實(shí)現(xiàn)文字不同長度,文字條數(shù)不定的文字無縫滾動(dòng)輪播。

下面先看html結(jié)構(gòu)

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

與圖片的無縫滾動(dòng)一樣,也需要將第一條數(shù)據(jù)拷貝一份放在最后面

其次是css的相關(guān)數(shù)據(jù)

  .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無默認(rèn)間距 */
    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的一些渲染機(jī)制,最好滾動(dòng)的元素內(nèi)部都需要啟動(dòng)硬件加速,否則會(huì)有卡頓和文字顯示不全的問題。

最后是js

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

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

最后要說明為什么要用js動(dòng)態(tài)添加css3的類名實(shí)現(xiàn)滾動(dòng)效果,一開始的時(shí)候我也是想直接將css3滾動(dòng)特效寫在滾動(dòng)的元素上,但是在iPhone上發(fā)現(xiàn)首次加載當(dāng)前頁面的時(shí)候他不會(huì)自動(dòng)滾動(dòng)。

相關(guān)文章

最新評(píng)論