溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jQuery如何實現(xiàn)文字輪播特效

發(fā)布時間:2021-08-19 09:27:46 來源:億速云 閱讀:167 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“jQuery如何實現(xiàn)文字輪播特效”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“jQuery如何實現(xiàn)文字輪播特效”這篇文章吧。

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

功能點:

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

jQuery如何實現(xiàn)文字輪播特效

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

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

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

下面先看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>

與圖片的無縫滾動一樣,也需要將第一條數(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無默認間距 */
    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的一些渲染機制,最好滾動的元素內(nèi)部都需要啟動硬件加速,否則會有卡頓和文字顯示不全的問題。

最后是js

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

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

以上是“jQuery如何實現(xiàn)文字輪播特效”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI