javascript實(shí)現(xiàn)文字跑馬燈效果
本文實(shí)例為大家分享了js實(shí)現(xiàn)文字跑馬燈效果的具體代碼,供大家參考,具體內(nèi)容如下
思路:
1.判斷文字的長(zhǎng)度和容器的長(zhǎng)度,如果文字長(zhǎng)度大于容器長(zhǎng)度,則開始滾動(dòng),否則不滾動(dòng)。
2.獲取滾動(dòng)條到元素左邊的距離,遞歸滾動(dòng),直到滾動(dòng)后的距離等于文字的長(zhǎng)度退出遞歸。
判斷文字和容器的長(zhǎng)度可以通過(guò)offsetWidth來(lái)判斷。如果文字長(zhǎng)度大于容器長(zhǎng)度,則開始滾動(dòng)。
window.onload = function(){ //比較文字與盒子長(zhǎng)度的大小 if(boxWidth>textWidth){ return false; } content.innerHTML += content.innerHTML; document.querySelector('.text').classList.add('padding'); //刷新textwidth textWidth = document.querySelector('.text').offsetWidth; scroll_left(); }
判斷滾動(dòng)的結(jié)束根據(jù)滾動(dòng)條到元素左邊的距離和文字的長(zhǎng)度判斷,如果滾動(dòng)條到元素左邊的距離等于文字的長(zhǎng)度,則結(jié)束滾動(dòng)。
function scroll_left(){ if(textWidth>boxWidth){ //文字長(zhǎng)度大于盒子長(zhǎng)度,開始滾動(dòng) box.scrollLeft++; setTimeout('scroll_left()',1); } }
完整代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ margin: auto; padding: 0; } .box{ margin-top: 150px; margin-left: 150px; color: red; white-space: nowrap; width: 200px; background: rosybrown; overflow: hidden; } .content p{ display: inline-block; } .content p.padding{ padding-right: 200px; } </style> </head> <body> <div class="box"> <div class="content"> <p class="text">實(shí)現(xiàn)文字的跑馬燈效果,超出容器的長(zhǎng)度則開始向左滾動(dòng)</p> </div> </div> <script> let box = document.querySelector('.box'); let content = document.querySelector('.content'); let text = document.querySelector('.text'); //文本寬度 let textWidth = text.offsetWidth; //盒子寬度 let boxWidth = text.offsetWidth; window.onload = function(){ //比較文字與盒子長(zhǎng)度的大小 if(boxWidth>textWidth){ return false; } content.innerHTML += content.innerHTML; document.querySelector('.text').classList.add('padding'); //刷新textwidth textWidth = document.querySelector('.text').offsetWidth; scroll_left(); } function scroll_left(){ if(textWidth>boxWidth){ //文字長(zhǎng)度大于盒子長(zhǎng)度,開始滾動(dòng) box.scrollLeft++; setTimeout('scroll_left()',1); } } </script> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS前端開發(fā)模擬虛擬dom轉(zhuǎn)真實(shí)dom詳解
這篇文章主要為大家介紹了JS前端開發(fā)模擬虛擬dom轉(zhuǎn)真實(shí)dom詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01JavaScript中Location.search處理使用方法
本文主要介紹了JavaScript中Location.search處理使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04深入淺析JS Function()構(gòu)造函數(shù)
這篇文章給大家介紹了js function()構(gòu)造函數(shù)的知識(shí)以及關(guān)于function()構(gòu)造函數(shù)需要注意的幾個(gè)要點(diǎn),本文介紹的非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-08-08刷新頁(yè)面后讓控制臺(tái)的js代碼繼續(xù)執(zhí)行
這篇文章主要介紹了刷新頁(yè)面后讓控制臺(tái)的js代碼繼續(xù)執(zhí)行,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09開源免費(fèi)天氣預(yù)報(bào)接口API及全國(guó)所有地區(qū)代碼(國(guó)家氣象局提供)
這篇文章主要介紹了開源免費(fèi)天氣預(yù)報(bào)接口API及全國(guó)所有地區(qū)代碼(國(guó)家氣象局提供)的相關(guān)資料,需要的朋友可以參考下2016-12-12