亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能詳解

 更新時(shí)間:2017年09月19日 11:27:10   作者:yongh701  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能,簡(jiǎn)單說(shuō)明了文字滾動(dòng)的實(shí)現(xiàn)原理并結(jié)合具體實(shí)例形式給出了javascript文字滾動(dòng)功能的具體實(shí)現(xiàn)代碼,需要的朋友可以參考下

本文實(shí)例講述了JavaScript實(shí)現(xiàn)的原生態(tài)兼容IE6可調(diào)可控滾動(dòng)文字功能。分享給大家供大家參考,具體如下:

雖然HTML里面本身就有marquee標(biāo)簽,用來(lái)設(shè)置滾動(dòng)文字(marquee標(biāo)簽在附錄【HTML比較冷門(mén)標(biāo)簽與屬性】里會(huì)有具體介紹)這個(gè)標(biāo)簽到了IE8就開(kāi)始不支持,在IE6中可以設(shè)置的東西也很少,所以這東西還是用javascript來(lái)寫(xiě)為好。這個(gè)小組件也是比較常見(jiàn)的,但是網(wǎng)上的代碼質(zhì)量還是為了很多無(wú)關(guān)緊要的小特效而增加了許多無(wú)謂的代碼。其實(shí)這東西,你只要弄得能自己向右向左滾,到了屏幕邊緣自動(dòng)返回就行了,為什么要為了一些淡入淡出的華而不實(shí)的東西,而寫(xiě)一大摞代碼了。下面介紹一個(gè)自己寫(xiě)的利用padding-left實(shí)現(xiàn)滾動(dòng)文字,因?yàn)閜adding-left這個(gè)東西在大多數(shù)瀏覽器還是沒(méi)有問(wèn)題的。

一、基本目標(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" style="padding-left:0px;">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水平分隔線(xiàn)。單標(biāo)記標(biāo)簽,擁有屬性width,size,color,align(后接值)noshade(直接添加,如文本框的disabled,表示這條水平線(xiàn)是無(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  rel="external nofollow" ><img src="img0.jpg" width=100 hspace=50/></a>
<a  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.&copy是代表版權(quán)字符©,&reg則是注冊(cè)商標(biāo),&nbsp是空格

5.對(duì)于圖片,其hspace屬性能夠設(shè)置圖片與圖片之間的間距。

6.<body>標(biāo)簽也是有屬性的vlink link 能夠分別設(shè)置訪(fǎng)問(wèn)了與未訪(fǎng)問(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相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論