創建平滑的純 CSS 文本滑塊
本文將指導你如何使用純CSS 創建一個平滑的文本滑塊,解決文本重疊問題,並實現從右向左的滑動效果。通過調整關鍵幀的left 屬性,使文本在完全移出屏幕後才進行重置,從而避免滑動時的重疊現象,最終實現流暢的視覺體驗。本教程提供詳細的代碼示例和關鍵步驟,助你輕鬆構建出美觀實用的CSS 文本滑塊。
實現原理
核心思想在於控制每個文本項的left 屬性,使其從屏幕右側移入,在屏幕上停留一段時間,然後移出屏幕左側,並保持在屏幕外。在動畫循環開始時,將文本項瞬間重置到屏幕右側,由於這個重置沒有動畫效果,所以用戶不會看到。
具體步驟
-
HTML 結構
使用包含多個文本項的容器。每個文本項都應設置為絕對定位,以便可以通過CSS 動畫控制其位置。
<div class="trev-top-bar overflow-hidden" style="height: 56px;"> <div class="container-fluid"> <div class="row position-relative"> <div class="col-12 col-md trev-top-bar-item text-center position-absolute"> <i class="trev-top-bar-fa-icon fa-solid fa-truck-fast"></i> Fast Shipping </div> <div class="col-12 col-md trev-top-bar-item text-center position-absolute"> <i class="trev-top-bar-fa-icon fa-solid fa-arrow-right-arrow-left"></i> 100 Days Right of Return </div> <div class="col-12 col-md trev-top-bar-item text-center position-absolute"> <i class="trev-top-bar-fa-icon fa-solid fa-file-invoice-dollar"></i> Buy with Invoice </div> <div class="col-12 col-md trev-top-bar-item text-center position-absolute"> <i class="trev-top-bar-fa-icon fa-solid fa-gears"></i> Proven Quality </div> </div> </div> </div>
這裡使用了Bootstrap 的類來輔助佈局,並使用了Font Awesome 的圖標。
-
CSS 樣式
- 設置容器的樣式,例如背景顏色、字體顏色、字體大小和內邊距。
- 設置文本項的樣式,例如絕對定位。
- 定義關鍵幀動畫,控制每個文本項的left 屬性。
.trev-top-bar { background-color: #256dff; color: #fff; font-size: 14px; padding-top: 1rem; padding-bottom: 1rem; } .trev-top-bar .trev-top-bar-item:first-child { -webkit-animation: top-bar-animation-1 16s ease infinite; animation: top-bar-animation-1 16s ease infinite; } .trev-top-bar .trev-top-bar-item:nth-child(2) { -webkit-animation: top-bar-animation-2 16s ease infinite; animation: top-bar-animation-2 16s ease infinite; } .trev-top-bar .trev-top-bar-item:nth-child(3) { -webkit-animation: top-bar-animation-3 16s ease infinite; animation: top-bar-animation-3 16s ease infinite; } .trev-top-bar .trev-top-bar-item:nth-child(4) { -webkit-animation: top-bar-animation-4 16s ease infinite; animation: top-bar-animation-4 16s ease infinite; } .trev-top-bar .trev-top-bar-fa-icon, .trev-top-bar .icon { color: #fff; margin-right: .3rem; } .trev-top-bar .trev-top-bar-fa-icon { font-size: 16px; } .trev-top-bar .icon svg { width: 16px; height: 16px; } @keyframes top-bar-animation-1 { 0% { left: 100%; } 8.33% { left: 0; } 16.66% { left: 0; } 24.99% { left: -100%; } 100% { left: -100%; } } @keyframes top-bar-animation-2 { 0% { left: 100%; } 24.99% { left: 100%; } 33.33% { left: 0; } 41.66% { left: 0; } 49.99% { left: -100%; } 100% { left: -100%; } } @keyframes top-bar-animation-3 { 0% { left: 100%; } 49.99% { left: 100%; } 58.33% { left: 0; } 66.66% { left: 0; } 74.99% { left: -100%; } 100% { left: -100%; } } @keyframes top-bar-animation-4 { 0% { left: 100%; } 74.99% { left: 100%; } 83.33% { left: 0; } 91.66% { left: 0; } 100% { left: -100%; } }
關鍵幀的解釋:
- 0%: 文本項位於屏幕右側(left: 100%)。
- 8.33% (對於第一個文本項): 文本項開始進入屏幕(left: 0)。
- 16.66% (對於第一個文本項): 文本項完全顯示在屏幕上(left: 0)。
- 24.99% (對於第一個文本項): 文本項開始移出屏幕(left: -100%)。
- 100%: 文本項完全移出屏幕(left: -100%)。
注意,每個文本項的動畫開始時間都不同,以實現連續的滑動效果。 調整animation-delay 可以控制每個文本項的出現時間。
-
引入必要的庫
確保引入Font Awesome 和Bootstrap 的CSS 文件。
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet">
注意事項
- 確保容器具有overflow: hidden 樣式,以防止文本項溢出。
- 根據實際需求調整動畫時間和延遲,以獲得最佳的視覺效果。
- 避免在關鍵幀中使用不必要的中間狀態,簡化動畫過程。
- 如果需要支持更複雜的動畫效果(例如淡入淡出),可以考慮使用JavaScript 來輔助實現。
總結
通過以上步驟,你可以使用純CSS 創建一個平滑的文本滑塊,避免文本重疊問題,並實現從右向左的滑動效果。 這種方法簡單易懂,無需依賴JavaScript,適用於對性能要求較高的場景。 掌握這種技術,可以為你的網站或應用程序增加吸引人的動態效果。
以上是創建平滑的純 CSS 文本滑塊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用標籤是最簡單且推薦的方法,語法為,適用於現代瀏覽器直接嵌入PDF;2.使用標籤可提供更好的控制和備用內容支持,語法為,並在標籤內提供下載鏈接作為不支持時的備用方案;3.可選通過GoogleDocsViewer嵌入,但因隱私和性能問題不建議廣泛使用;4.為提升用戶體驗,應設置合適的高度、使用響應式尺寸(如height:80vh)並提供PDF下載鏈接,以便用戶自行下載查看。

要創建HTML無序列表,需使用標籤定義列表容器,每個列表項用標籤包裹,瀏覽器會自動添加項目符號;1.使用標籤創建列表;2.每個列表項用標籤定義;3.瀏覽器自動生成默認圓點符號;4.可通過嵌套實現子列表;5.使用CSS的list-style-type屬性可修改符號樣式,如disc、circle、square或none;正確使用這些標籤即可生成標準無序列表。

要為網站標題欄添加圖標,需在HTML的部分鏈接一個favicon文件,具體步驟如下:1.準備一個16x16或32x32像素的圖標文件,推薦使用favicon.ico命名並放置於網站根目錄,或使用PNG、SVG等現代格式;2.在HTML的中添加鏈接標籤,如,若使用PNG或SVG格式則相應調整type屬性;3.可選地為移動設備添加高分辨率圖標,如AppleTouchIcon,並通過sizes屬性指定不同尺寸;4.遵循最佳實踐,將圖標置於根目錄以確保自動檢測,更新後清除瀏覽器緩存,檢查文件路徑正確性,

選擇合適的HTMLinput類型能提升數據準確性、增強用戶體驗並提高可用性。 1.根據數據類型選用對應input類型,如text、email、tel、number和date,可實現自動校驗和適配鍵盤;2.利用HTML5新增類型如url、color、range和search,可提供更直觀的交互方式;3.配合使用placeholder和required屬性,可提升表單填寫效率和正確率,但需注意placeholder不能替代label。

Usetheelementwithinatagtocreateasemanticsearchfield.2.Includeaforaccessibility,settheform'sactionandmethod="get"attributestosenddatatoasearchendpointwithashareableURL.3.Addname="q"todefinethequeryparameter,useplaceholdertoguideuse

使用HTML的標籤能提升內容的可訪問性和清晰度;1.用縮寫標記縮寫或首字母縮略詞;2.為不常見的縮寫添加title屬性以提供完整解釋;3.在文檔首次出現時使用,避免重複標註;4.可通過CSS自定義樣式,默認瀏覽器通常顯示帶點下劃線;5.有助於屏幕閱讀器用戶理解術語,增強用戶體驗。

首先檢查src屬性路徑是否正確,確保相對路徑或絕對路徑與HTML文件位置匹配;2.核實文件名和擴展名是否拼寫正確且區分大小寫;3.確認圖像文件實際存在於指定目錄中;4.使用合適的alt屬性並確保圖像格式為瀏覽器廣泛支持的.jpg、.png、.gif或.webp;5.排除瀏覽器緩存問題,嘗試強制刷新或直接訪問圖像URL;6.檢查服務器權限設置,確保文件可被讀取且未被屏蔽;7.驗證img標籤語法正確,包含正確的引號和屬性順序,最終通過瀏覽器開發者工具排查404錯誤或語法問題以確保圖像正常顯示。

使用FontAwesome可通過引入CDN並在按鈕中添加圖標類來快速添加圖標,如Like;2.使用標籤可在按鈕中嵌入自定義圖標,需指定正確的路徑和尺寸;3.直接嵌入SVG代碼可實現高分辨率圖標並保持與文本顏色一致;4.應通過CSS添加間距並為圖標按鈕添加aria-label以提升可訪問性;綜上,FontAwesome最適合標準圖標,圖片適用於自定義設計,而SVG提供最佳縮放和控制,應根據項目需求選擇方法,通常推薦FontAwesome。
