這篇文章將為大家詳細(xì)講解有關(guān)如何使用JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
一、基本目標(biāo)
如下圖,一開(kāi)始文字能在15px-400px這個(gè)區(qū)域以每0.05s,5px像素的無(wú)縫滾動(dòng),當(dāng)然,改改下面的腳本,你讓我從地球滾動(dòng)到外太空都沒(méi)問(wèn)題,只要你告訴我地球的px和外太空的px就行了,然后設(shè)置兩個(gè)按鈕,你點(diǎn)擊“停止”它就停止,停止之后點(diǎn)擊“開(kāi)始”就讓它開(kāi)始,它在“開(kāi)始”的狀態(tài)你點(diǎn)N下“開(kāi)始”是不會(huì)出BUG的,繼續(xù)保持這個(gè)狀態(tài),它在“停止”狀態(tài),你點(diǎn)N下“停止”也是沒(méi)有問(wèn)題的。
二、HTML布局
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>marquee</title> </head> <body> <div>sssssss</div> <div id="marquee" >marquee</div> <div>sssssss</div> <button onclick="return marquee_move_stop()">停止</button> <button onclick="return marquee_move_start()">開(kāi)始</button> </body> </html>
思想如下圖,一圖勝千言,不說(shuō)了。請(qǐng)自行對(duì)比代碼與圖。
三、腳本部分
這里是整個(gè)控件的核心。
<script> //設(shè)置其滾動(dòng)速度是5px/0.05s,這樣能夠?qū)崿F(xiàn)無(wú)縫滾動(dòng),不會(huì)一卡一卡的。 var speed=5; var marqueeTimer=setInterval("marquee_move()",50); //這個(gè)變量主要是用來(lái)下面控制滾動(dòng)開(kāi)始與停止的兩個(gè)函數(shù) var isMarqueeMove=true; //滾動(dòng)的核心函數(shù) function marquee_move(){ //這么長(zhǎng)的代碼主要是為了把帶px的padding-left轉(zhuǎn)化為一個(gè)可以操作的數(shù) //如padding-left:0px;經(jīng)過(guò)這一行代碼之后var marquee_x=0; var marquee_x=parseInt(document.getElementById("marquee").style.paddingLeft.substring(0,document.getElementById("marquee").style.paddingLeft.indexOf("px"))); //如果滾過(guò)400px這個(gè)位置,那就向反方向走,反之亦然 if(marquee_x>400){ speed=-5; } //這里不要設(shè)置成0,可能會(huì)產(chǎn)生越界bug if(marquee_x<15){ speed=5; } //文字向右滾5px document.getElementById("marquee").style.paddingLeft=marquee_x+speed+"px"; } //下面控制滾動(dòng)開(kāi)始與停止的兩個(gè)函數(shù) //之所以要立flag,是因?yàn)閙arqueeTimer=setInterval("marquee_move()",50);多次被執(zhí)行,滾動(dòng)會(huì)變得很快和無(wú)法控制 //后方的計(jì)時(shí)器不會(huì)替換到前方的計(jì)時(shí)器 function marquee_move_stop(){ if(isMarqueeMove){ clearTimeout(marqueeTimer); isMarqueeMove=false; } } function marquee_move_start(){ if(!isMarqueeMove){ marqueeTimer=setInterval("marquee_move()",50); isMarqueeMove=true; } } </script>
四、總結(jié)
1、CSS中,凡是帶-的屬性,在javascript要換成大寫(xiě),如CSS的padding-left在javascript是paddingLeft,否則會(huì)被當(dāng)成減號(hào)處理
2、利用padding-left來(lái)完成這個(gè)組件,就不用使用left要設(shè)置絕對(duì)定位,然后又要考慮這個(gè)組件怎么擺放了。
3、這個(gè)東西在瀏覽器的百分比寬度內(nèi)滾動(dòng),最好不要這樣做,畢竟javascript中取出瀏覽器的寬度可能會(huì)遇到各種各樣的兼容性問(wèn)題。還是設(shè)置一個(gè)定值,這樣的代碼簡(jiǎn)短。
附:HTML比較冷門(mén)標(biāo)簽與屬性
1.<hr>
標(biāo)簽?zāi)軌蛱砑右粭l水平分隔線。單標(biāo)記標(biāo)簽,擁有屬性width,size,color,align(后接值)noshade(直接添加,如文本框的disabled,表示這條水平線是無(wú)陰影的)
2.<marquee>
標(biāo)簽已經(jīng)被微軟廢除了。
微軟這個(gè)家伙在最新的IE8下已經(jīng)放棄對(duì)MARQUEE的支持了(我這里很無(wú)語(yǔ),MARQUEE是微軟自己創(chuàng)造出來(lái)的,現(xiàn)在火狐都支持了,它自己不干了)
用marquee有諸多問(wèn)題的。DW給你提示是警告你慎重。
如下面的代碼在IE8的滾動(dòng)是存在問(wèn)題的,當(dāng)圖片滾完之后會(huì)自動(dòng)刷新,相當(dāng)難看,無(wú)法現(xiàn)實(shí)無(wú)縫滾動(dòng)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>滾動(dòng)</title> </head> <body> <marquee width=250px behavior="scroll"> <a href="http://www.163.com" rel="external nofollow" ><img src="img0.jpg" width=100 hspace=50/></a> <a href="http://www.baidu.com" rel="external nofollow" ><img src="img28.jpg" width=100px /></a> </marquee> </body> </html>
3.<strong>
標(biāo)簽是強(qiáng)調(diào)標(biāo)簽,基于內(nèi)容。<b>
是物理樣式。<sup><sub>雙標(biāo)記標(biāo)簽?zāi)芊謩e使字體上標(biāo)與下標(biāo)
4.©是代表版權(quán)字符©,®則是注冊(cè)商標(biāo), 是空格
5.對(duì)于圖片,其hspace屬性能夠設(shè)置圖片與圖片之間的間距。
6.<body>
標(biāo)簽也是有屬性的vlink link 能夠分別設(shè)置訪問(wèn)了與未訪問(wèn)超鏈接的顏色,leftmargin與topmargin能夠分別規(guī)定文檔的左邊距與上邊距
7.<meta name="keywords" content="搜索關(guān)鍵詞"><meta name="description content="網(wǎng)頁(yè)描述">能分別設(shè)置被搜索引擎抓取的關(guān)鍵詞與網(wǎng)頁(yè)描述
關(guān)于“如何使用JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱(chēng):如何使用JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://jinyejixie.com/article38/gpspp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、App開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容