第17章 HTML5、CSS3與JavaScript綜合應(yīng)用_第1頁
第17章 HTML5、CSS3與JavaScript綜合應(yīng)用_第2頁
第17章 HTML5、CSS3與JavaScript綜合應(yīng)用_第3頁
第17章 HTML5、CSS3與JavaScript綜合應(yīng)用_第4頁
第17章 HTML5、CSS3與JavaScript綜合應(yīng)用_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

本章要求:第17章HTML5、CSS3與JavaScript綜合應(yīng)用文字升降特效閃爍的圖片左右移動的圖片自動隱藏菜單樹狀導(dǎo)航菜單顏色選擇器主要內(nèi)容1.綜合實例

1——文字升降特效2.綜合實例

2——閃爍的圖片3.綜合實例

3——左右移動的圖片4.綜合實例

4——自動隱藏菜單5.綜合實例

5——樹狀導(dǎo)航菜單6.綜合實例

6——顏色選擇器第17章HTML5、CSS3與JavaScript綜合應(yīng)用17.1綜合實例

1——文字升降特效在一些閱讀性的網(wǎng)站中,為了使瀏覽者更便于閱讀,頁面中的文字將自動進(jìn)行滾動。本實例在頁面打開后,頁面中的文字將在一定的范圍內(nèi)進(jìn)行上下滾動,運(yùn)行結(jié)果如圖17-1所示。圖17-1文字上下滾動本實例主要是用document對象中的<body>對象的clientHeight屬性來獲取工作區(qū)的高,并設(shè)置文字移動的范圍,并用window對象的setTimeout()方法使文字在指定的區(qū)域內(nèi)進(jìn)行上下移動。注意:

一定要將層(div)的style樣式的position屬性設(shè)為absolute,否則,層將不會移動。(1)在<body>標(biāo)記中添加一個層,代碼如下:<divid="TDiv"style="position:absolute;top:50;color:#000000;font-size:20px;"><p>歡迎購買明日科技圖書</p></div>(2)編輯用于實現(xiàn)文字上下滾動的JavaScript代碼。自定義函數(shù),用于設(shè)置文字所顯示的位置,并調(diào)用自定義函數(shù)act()。代碼如下:<scriptlanguage="JavaScript">down=true;functionactivity(){ob=document.all("TDiv");if(ob.style.posTop<=50){varhei=document.body.clientHeight;act(50,hei-100,50)}自定義函數(shù)act(),使文字在頁面中進(jìn)行上下滾動。代碼如下:functionact(yp,yk,yx){ob=document.all("TDiv");ob.style.posTop=yp;if(yp<=yx)down=true;if(yp>=yk)down=false;if(down){step=4;}else{step=-4;}setTimeout('act('+(yp+step)+','+yk+','+yx+')',35);}在窗體載入時,調(diào)用自定義函數(shù)activity()。代碼如下:activity();</script>在一些招商的網(wǎng)站中,頁面中包含著大量的廣告信息,有時會使用一些網(wǎng)頁特效來吸引瀏覽者。在本例中,為了使圖片鏈接更具吸引力,在圖片中增加了不停閃爍的效果,如圖17-2所示。圖17-2使圖片不停閃爍17.2綜合實例

2——閃爍的圖片本例中主要對層進(jìn)行操作,在glint函數(shù)中通過三目運(yùn)算符設(shè)置圖片的顯示或隱藏狀態(tài),然后在指定的時間內(nèi)重復(fù)執(zhí)行,以達(dá)到圖片不停閃爍的效果。(1)編寫使圖片不停閃爍的JavaScript代碼,具體代碼如下:<SCRIPTLANGUAGE="JavaScript">varcounter=0;functionsoccerOnload() //在指定的時間內(nèi)調(diào)用glint函數(shù){

setTimeout("glint()",200);}functionglint() //設(shè)置圖片的顯示和隱藏狀態(tài){

div1.style.visibility=(div1.style.visibility=="hidden")?"visible":"hidden";

counter+=1;

setTimeout("glint()",200);}</SCRIPT>(2)添加頁面設(shè)計代碼,并在層中加入圖片,代碼如下:<bodyonload="soccerOnload();"><DIVID="div1"STYLE="position:absolute;left:150;top:0"><ahref=""target="_blank"><p></p><imgname="image1"src="Temp.jpg"><p></p><fontsize="3pt"color="#FF0000">明日科技最新圖書

</font></a></DIV></body>本實例將使用JavaScript編寫一個可以左右拖動的圖片,當(dāng)用戶在圖片上按下鼠標(biāo)左鍵不放時,就可以左右拖動圖片,當(dāng)釋放鼠標(biāo)左鍵時,則將圖片放置在釋放鼠標(biāo)左鍵時的位置上,如圖17-3所示。圖17-3可以左右拖動的圖片17.3綜合實例

3——左右移動的圖片在制作本實例時,首先編寫用于實現(xiàn)左右拖動圖片的功能函數(shù),再通過window對象的setInterval()方法每隔1ms執(zhí)行一次實現(xiàn)左右拖動圖片的函數(shù),最終實現(xiàn)可以左右拖動圖片的效果。(1)在<body></body>區(qū)域中添加一段CSS樣式,其代碼如下:<STYLEtype=text/css>#floater{LEFT:445px;POSITION:absolute;TOP:-3px;VISIBILITY:visible;WIDTH:125px;Z-INDEX:10}</STYLE>(2)編寫用于實現(xiàn)可以左右拖動圖片的JavaScript代碼。<Scriptlanguage="JavaScript">self.onError=null;currentX=0;whichIt=null;lastScrollX=0;NS=(document.layers)?1:0;IE=(document.all)?1:0;functionheartBeat(){if(IE)diffX=document.body.scrollLeft;

if(NS)diffX=self.pageXOffset;if(diffX!=lastScrollX){percent=.1*(diffX-lastScrollX);if(percent>0){percent=Math.ceil(percent);}else{percent=Math.floor(percent);}if(IE)document.all.floater.style.pixelLeft+=percent;if(NS)document.floater.left+=percent;lastScrollX=lastScrollX+percent;functioncheckFocus(x){stalkerx=document.floater.pageX;stalkerwidth=document.floater.clip.width;if((x>stalkerx&&x<(stalkerx+stalkerwidth)))

returntrue;else

returnfalse;}functiongrabIt(e){if(IE){

whichIt=event.srcElement;

while(whichIt.id.indexOf("floater")==-1){whichIt=whichIt.parentElement;if(whichIt==null){returntrue;}

}

whichIt.style.pixelLeft=whichIt.offsetLeft;

currentX=(event.clientX+document.body.scrollLeft);}else{window.captureEvents(Event.MOUSEMOVE);if(checkFocus(e.pageX)){whichIt=document.floater;StalkerTouchedX=e.pageX-document.floater.pageX;}}returntrue;}functionmoveIt(e){if(whichIt==null){returnfalse;}if(IE){newX=(event.clientX+document.body.scrollLeft);distanceX=(newX-currentX);currentX=newX;whichIt.style.pixelLeft+=distanceX;if(whichIt.style.pixelLeft<document.body.scrollLeft)whichIt.style.pixelLeft=document.body.scrollLeft;if(whichIt.style.pixelLeft>document.body.offsetWidth-document.body.scrollLeft-whichIt.style.pixelWidth-20)whichIt.style.pixelLeft=document.body.offsetWidth-whichIt.style.pixelWidth-20;event.returnValue=false;}else{whichIt.moveTo(e.pageX-StalkerTouchedX);if(whichIt.left<0+self.pageXOffset)whichIt.left=0+self.pageXOffset;if((whichIt.left+whichIt.clip.width)>=(window.innerWidth+self.pageXOffset-17))whichIt.left=((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;returnfalse;returnfalse;functiondropIt(){whichIt=null;if(NS)window.releaseEvents(Event.MOUSEMOVE);returntrue;if(NS){window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);window.onmousedown=grabIt;window.onmousemove=moveIt;window.onmouseup=dropIt;if(IE){document.onmousedown=grabIt;document.onmousemove=moveIt;document.onmouseup=dropIt;if(NS||IE)action=window.setInterval("heartBeat()",1);</Script>(3)添加頁面設(shè)計代碼。<DIValign="center"id="floater"><TABLEheight="10"width="24"><TR><TDalign="middle"height="6"vAlign="center"width="76"><imgsrc="bg.jpg"width="170"height="113"border=0style="cursor:pointer"></TD></TR></TABLE></DIV>在一些個性化的網(wǎng)站中,經(jīng)常會看到自動隱藏式的菜單。該類菜單不僅使頁面美觀別致,而且節(jié)省頁面空間。當(dāng)鼠標(biāo)移到菜單標(biāo)簽上時,該菜單將自動展開;當(dāng)鼠標(biāo)離開菜單標(biāo)簽時,該菜單將自動隱藏。本實例制作的自動隱藏式菜單運(yùn)行結(jié)果如圖17-4和圖17-5所示。圖17-4自動隱藏菜單圖17-5菜單展開17.4綜合實例

4——自動隱藏菜單本實例主要應(yīng)用window對象的setTimeout(

)方法和clearTimeout(

)方法實現(xiàn)的,具體步驟如下:(1)應(yīng)用JavaScript腳本創(chuàng)建自定義函數(shù)實現(xiàn)菜單的顯示與隱藏,代碼如下:<scriptlanguage="javascript">a=nullb=nullc=nulld=nullNetscape4=(document.layers)?1:0IE4=(document.all)?1:0;functionMenuHide() //菜單隱藏{if(Netscape4){clearTimeout(d)if(menu.left>menuW*-1+20+10){menu.left-=10c=setTimeout("MenuHide()",1)}elseif(menu.left>menuW*-1+20){

menu.left--

c=setTimeout("MenuHide()",1)else{clearTimeout(d)if(menu.pixelLeft>menuW*-1+20+10){menu.pixelLeft-=10c=setTimeout("MenuHide()",1)}elseif(menu.pixelLeft>menuW*-1+20){menu.pixelLeft--c=setTimeout("MenuHide()",1)}}}functionMenuOut() //菜單顯示{if(Netscape4){clearTimeout(c)if(menu.left<-10){menu.left+=4d=setTimeout("MenuOut()",1)}elseif(menu.left<0){menu.left++d=setTimeout("MenuOut()",1)else{clearTimeout(c)if(menu.pixelLeftp<-10){menu.pixelLeft+=2d=setTimeout("MenuOut()",1)}elseif(menu.pixelLeft<0){menu.pixelLeft++d=setTimeout("MenuOut()",1)}}}functionfireOver(){clearTimeout(b) a=setTimeout("MenuOut()",10)}functionfireOut(){clearTimeout(a)b=setTimeout("MenuHide()",10)}functionInit(){if(Netscape4)menu=document.D1menuW=menu.document.Widthmenu.left=menu.document.Width*-1+20menu.onmouseover=menuOutmenu.onmouseout=menuInmenu.visibility="visible"}elseif(IE4){menu=dviID.stylemenuW=dviID.offsetWidthdviID.style.pixelLeft=dviID.offsetWidth*-1+20dviID.onmouseover=fireOverdviID.onmouseout=fireOutdviID.style.visibility="visible"}}</script>(2)設(shè)置<body>標(biāo)記的onload事件調(diào)用Init()函數(shù),代碼如下:<bodyonload="Init()"><divid="dviID"style="left:0px;top:0px"><tableborder="0"width="198"height="500">

<tr>

<tdwidth="13"rowSpan="2"valign=middlebgColor="#2e8b57"style="width:13px">

<fontcolor="#00ff99">

菜<br>

欄</font></td><tdwidth="175"colspan="2"rowspan="2"valign=middle><ul><br/><br/><li><ahref="javascript:void(0)">ASP程序開發(fā)范例寶典</a></li><li><ahref="javascript:void(0)">ASP開發(fā)技術(shù)大全</a></li><li><ahref="javascript:void(0)">ASP數(shù)據(jù)庫開發(fā)案例精選</a></li><li><ahref="javascript:void(0)">JSP程序開發(fā)范例寶典</a></li><li><ahref="javascript:void(0)">C#程序開發(fā)范例寶典</a></li><li><ahref="javascript:void(0)">PHP程序開發(fā)范例寶典</a></li></ul></td>

</tr>

<tr>

</tr></table></div></body>對于一個導(dǎo)航文字很多,并且可以對導(dǎo)航內(nèi)容進(jìn)行分類的網(wǎng)站來說,可以將頁面中的導(dǎo)航文字以樹視圖的形式顯示,這樣不僅可以有效節(jié)約頁面,而且也可以方便用戶查看。運(yùn)行本實例,如圖17-6所示,在企業(yè)進(jìn)銷存管理系統(tǒng)將系統(tǒng)功能以樹狀導(dǎo)航菜單的形式列出,在頁面的左側(cè)“企業(yè)進(jìn)銷存導(dǎo)航”中可以看到該系統(tǒng)內(nèi)所包含的具體功能。在默認(rèn)情況下,所有功能節(jié)點都是折疊,單擊節(jié)點名稱可以展開指定節(jié)點;再單擊該節(jié)點名稱可以將該節(jié)點折疊。圖17-6樹狀導(dǎo)航菜單17.5綜合實例

5——樹狀導(dǎo)航菜單本實例主要通過在頁面中加入DIV層,并通過頁面控制層的顯示和隱藏來實現(xiàn)樹狀導(dǎo)航菜單。(1)應(yīng)用JavaScript定義一個show_div(

)函數(shù),主要用于顯示一個層(menu層)中的內(nèi)容,用來實現(xiàn)模擬樹形視圖。代碼如下:<scriptlanguage="JavaScript">functionshow_div(menu){varImgname;if(document.all.item(menu).style.display=="none"){document.all.item(menu).style.display="block";Imgname="images/Img"+menu+"_2.gif"document.all.item("Img"+menu).src=Imgname;}else{document.all.item(menu).style.display="none";Imgname="images/Img"+menu+"_1.gif"document.all.item("Img"+menu).src=Imgname;}}</script>(2)插入導(dǎo)航圖片和導(dǎo)航文字,代碼如下:<P>

<AHref="#"onClick="show_div('menu1')"><imgname="Imgmenu1"src="images/Imgmenu1_1.gif"BORDER="0"ALIGN="ABSMIDDLE"width="39"height="16"><spanclass="l"><b>基礎(chǔ)信息管理</b></span><br>

</a><DIVID="menu1"style="display:none">

<imgsrc="images/open_1.gif"width="39"height="16"><ahref="#"class="l">客戶信息管理</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">商品信息管理</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">供應(yīng)商信息管理</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">商品信息查詢</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">客戶信息查詢</a><br>

<imgsrc="images/open_2.gif"width="39"height="16">

<ahref="#"class="l">供應(yīng)商信息查詢</a><br><br></DIV><p>

<ahref="#"onClick="show_div('menu2')"><imgname="Imgmenu2"src="images/Imgmenu2_1.gif"BORDER="0"ALIGN="ABSMIDDLE"width="39"height="16"><spanclass="l"><b>采購管理</b></span></a>

<br><DIVID=menu2STYLE="display:None">

<imgsrc="images/open_1.gif"width="39"

height="16"><ahref="#"class="l">商品采購</a><br>

<imgsrc="images/open_2.gif"width="39"height="16"><ahref="#"class="l">采購查詢</a><br><br></DIV><p><AHREF="#"onClick="show_div('menu3')"><IMGname="Imgmenu3"SRC="images/Imgmenu3_1.gif"BORDER="0"ALIGN="ABSMIDDLE"width="39"height="16"><spanclass="l"><b>庫存管理</b></span></A>

<br><DIVID=menu3STYLE="display:None">

<Imgsrc="images/open_1.gif"width="39"height="16"><ahref="#"class="l">商品入庫</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">商品入庫退貨</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">庫存查詢</a><br>

<imgsrc="images/open_2.gif"width="39"height="16">

<ahref="#"class="l">價格調(diào)整</a><br><br></div><p>

<AHREF="#"onClick="show_div('menu4')"><IMGname="Imgmenu4"SRC="images/Imgmenu4_1.gif"BORDER="0"ALIGN="ABSMIDDLE"width="39"height="16"><spanclass="l"><b>商品銷售</b></span></A>

<br><DIVID=menu4STYLE="display:None">

<imgsrc="images/open_1.gif"width="39"height="16"><ahref="#"class="l">商品銷售</a><br>

<imgsrc="images/open_2.gif"width="39"height="16">

<ahref="#"class="l">銷售退貨</a><br><br></div><p>

<AHREF="#"onClick="show_div('menu5')"><IMGname="Imgmenu5"SRC="images/Imgmenu5_1.gif"BORDER="0"ALIGN="ABSMIDDLE"width="39"height="16"><bclass="l">查詢統(tǒng)計</b></A>

<br><DIVID=menu5STYLE="display:None">

<imgsrc="images/open_1.gif"width="39"height="16"><ahref="#"class="l">銷售信息查詢</a><br>

<imgsrc="images/open_1.gif"width="39"height="16">

<ahref="#"class="l">商品入庫查詢</a><br>

<imgsrc="images/open_2.gif"width="39"height="16">

<ahref="#"class="l">商品銷售排行</a><br><br></div>讀者可以根據(jù)實現(xiàn)情況自行添加所須節(jié)點,方法同上。在瀏覽網(wǎng)站時,經(jīng)常會進(jìn)入一些討論性的網(wǎng)站,在這些網(wǎng)站中,可以對一些問題進(jìn)行討論,在發(fā)送文字的時候,可以利用顏色拾取器對字體的顏色進(jìn)行設(shè)置。本實例將制作一個16*16*16色的顏色拾取器。運(yùn)行結(jié)果如圖17-7所示。在下拉列表中可以選擇紅、綠、藍(lán)、灰4種顏色,在選擇其中一種顏色后,在表的左面會顯示相應(yīng)的顏色,用鼠標(biāo)單擊表格左面的顏色塊,可以在表格右面看到更多的顏色,當(dāng)單擊表右邊的顏色塊時,會彈出標(biāo)有相應(yīng)顏色值的對話框。圖17-7顏色拾取器17.6綜合實例

6——顏色選擇器本實例主要應(yīng)用document對象的write()方法動態(tài)向表格中添加單元格,用rgb()函數(shù)修改各單元格bgcolor屬性中的值,使單元格以不同的顏色進(jìn)行顯示。Number對象的toString(16)方法是將十進(jìn)制轉(zhuǎn)換成十六進(jìn)制。(1)在頁面中添加表格,并在表格中以單元格背景來顯示顏色塊的內(nèi)容,代碼如下:<tableborder="0"cellspacing="1"cellpadding="3"width="350"align="center"bgcolor="#dddddd"><trbgcolor="#FFFFFF"><tdwidth="10%"align="center"><selectname="select1"onchange="selectmenu(this.value)"><optionvalue="1"selected>紅</option><optionvalue="2">綠</option><optionvalue="3">藍(lán)</option><optionvalue="4">灰</option></select></td><tdwidth="90%"align="center"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdalign="center"style="font-size:12px">用鼠標(biāo)單擊下面的顏色塊,將彈出顏色值</td></tr></table></td></tr><trbgcolor="#FFFFFF"><tdwidth="10%"align="center"><tableid="table1"border="0"cellspacing="1"cellpadding="0">在表格(table1)中添加JavaScript腳本,用于在表格中添加單元格,并設(shè)置單元格的背景顏色。<scriptlanguage="JavaScript">for(i=0;i<=15;++i){

document.write('<tr><tdalign="center"style="font:menu">'+ishex(i*17)+'</td><tdid="Ltd'+i+'"bgcolor="rgb('+(i*17)+',0,0)"width="15"height="15"onclick="changeright(this.num)"></td></tr>')

document.all['Ltd'+i].num=i}functionishex(which){

returnwhich.toString(16);}</script>HTML標(biāo)記用于在單元格中創(chuàng)建表格。</table></td><tdalign="center"width="90%"><tableid="table2"border="0"cellspacing="1"cellpadding="0">在表格中添加JavaScript腳本,用于向表格中添加指定的單元格,并設(shè)置單元格的背景顏色。<scriptlanguage="JavaScript">document.write('<tr><td></td>')for(i=0;i<=15;++i){document.write('<tdalign="center"style="font:menu">'+ishex(i*17)+'</td>');}document.write('</tr>')for(i=0;i<=15;++i){document.write('<tr>')document.write('<tdalign="center"style="font:menu">'+ishex(i*17)+'</td>')for(j=0;j<=15;++j){document.write('<tdid="Rtd'+i+'and'+j+'"style="font:menu"bgcolor="rgb(0,'+(i*17)+','+(j*17)+')"width="15"height="15"onclick="clickright(this)"></td>');}document.write('</tr>')}</script>HTML標(biāo)記。</table></td></tr></table>(2)編輯用于實現(xiàn)更換顏色拾取器的顏色值,并進(jìn)行顯示的JavaScript代碼。自定義函數(shù)selectmenu(),用于判斷在下拉列表(Menu組件)中,選擇了紅、綠、藍(lán)、灰哪種顏色。<scriptlanguage="JavaScript">functionselectmenu(which){switch(which){case'1':leftR();break;case'2':leftG();break;case'3':leftB();break;case'4':leftA();break;}}自定義函數(shù)leftR(),當(dāng)在下拉列表中選擇紅色時,改變表格左面的顏色值。functionleftR(){for(i=0;i<=15;++i){document.all['Ltd'+i].bgColor='rgb('+(i*17)+',0,0)';}rightR(0)}自定義函數(shù)leftG(),當(dāng)在下拉列表中選擇綠色時,改變表格左面的顏色值。functionleftG(){for(i=0;i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論