本文實例講述了JS實現點擊登錄彈出窗口同時背景色漸變動畫效果。分享給大家供大家參考,具體如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <STYLE> #login{ position: relative; display: none; top: 20px; left: 30px; background-color: #ffffff; text-align: center; border: solid 1px; padding: 10px; z-index: 1; } body { background-color: #0099CC; } .STYLE1 {color: #FFFF00} </STYLE> <script type="text/javascript"> var W = screen.width;//取得屏幕分辨率寬度 var H = screen.height;//取得屏幕分辨率高度 function M(id){ return document.getElementById(id);//用M()方法代替document.getElementByIdx_x(id) } function MC(t){ return document.createElement(t);//用MC()方法代替document.createElement_x(t) }; //判斷浏覽器是否為IE function isIE(){ return (document.all && window.ActiveXObject && !window.opera) ? true : false; } //取得頁面的高寬 function getBodySize(){ var bodySize = []; with(document.documentElement) { bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;//如果滾動條的寬度大於頁面的寬度,取得滾動條的寬度,否則取頁面寬度 bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;//如果滾動條的高度大於頁面的高度,取得滾動條的高度,否則取高度 } return bodySize; } //創建遮蓋層 function popCoverDiv(){ if (M("cover_div")) { //如果存在遮蓋層,則讓其顯示 M("cover_div").style.display = 'block'; } else { //否則創建遮蓋層 var coverDiv = MC('div'); document.body.appendChild(coverDiv); coverDiv.id = 'cover_div'; with(coverDiv.style) { position = 'absolute'; background = '#CCCCCC'; left = '0px'; top = '0px'; var bodySize = getBodySize(); width = bodySize[0] + 'px' height = bodySize[1] + 'px'; zIndex = 0; if (isIE()) { filter = "Alpha(Opacity=60)";//IE逆境 } else { opacity = 0.6; } } } } //讓登陸層顯示為塊 function showLogin() { var login=M("login"); login.style.display = "block"; } //設置DIV層的樣式 function change(){ var login = M("login"); login.style.position = "absolute"; login.style.border = "1px solid #CCCCCC"; login.style.background ="#F6F6F6"; var i=0; var bodySize = getBodySize(); login.style.left = (bodySize[0]-i*i*4)/2+"px"; login.style.top = (bodySize[1]/2-100-i*i)+"px"; login.style.width = i*i*4 + "px"; login.style.height = i*i*1.5 + "px"; popChange(i); } //讓DIV層大小循環增大 function popChange(i){ var login = M("login"); var bodySize = getBodySize(); login.style.left = (bodySize[0]-i*i*4)/2+"px"; login.style.top = (bodySize[1]/2-100-i*i)+"px"; login.style.width = i*i*4 + "px"; login.style.height = i*i*1.5+ "px"; if(i<=10){ i++; setTimeout("popChange("+i+")",10);//設置超時10毫秒 } } //打開DIV層 function open() { change(); showLogin(); popCoverDiv() void(0);//不進行任何操作,如:<a href="#">aaa</a> } //關閉DIV層 function close(){ M('login').style.display = 'none'; M("cover_div").style.display = 'none'; void(0); } </script> </head> <body> <br> <br> <div align="center"><a href="javascript:open();" class="STYLE1">登陸</a></div> <div id="login"> <span>用戶登陸</span> <div id="panel"> <lable>用戶名: </lable><input type="text" size="20" /> <lable>密碼: </lable><input type="password" size="20"> <input type="checkbox" /><lable>登陸</lable> </div> <input type="button" value="提交" /> <a href="javascript:close();">關閉</a> </div> </body> </html>
更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。