日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我是这样写文字轮播的

發布時間:2023/12/18 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我是这样写文字轮播的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

項目背景: 這次的項目主要是做一次全國酒店人氣排名的營銷活動,主要是基于在微信中傳播,預計訪問量達到億級,并發做到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上發現首次加載當前頁面的時候他不會自動滾動。

未完待續。。。

轉載于:https://www.cnblogs.com/libin-1/p/6377747.html

總結

以上是生活随笔為你收集整理的我是这样写文字轮播的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。