この記事の例では、js が NetEase のクリック ポップアップ プロンプトを模倣し、背景効果を暗くする方法を説明します。皆さんの参考に共有してください。詳細は以下の通りです。
ここのポップアップ プロンプトは NetEase によって模倣されており、背景を暗くするプロンプト レイヤー効果、丸い角、美しく簡潔で、コードが少し多すぎます。
操作効果は以下の通りです:
オンライン デモのアドレスは次のとおりです:
http://demo.jb51.net/js/2015/js-sina-dialog-bgcolor-codes/
具体的なコードは次のとおりです:
<html> <head> <title>点击弹出提示,背景变暗</title> <script> function msg(info){ var p=document.createElement("DIV"); if (!info) var info='<a href="#" target="_blank" rel="external">欢迎光临</a>'; p.id="p"; p.style.position="absolute"; p.style.width=document.body.scrollWidth; p.style.height=(document.body.offsetHeight>document.body.scrollHeight)?'100%':document.body.scrollHeight; p.style.zIndex='998'; p.style.top='0px'; p.style.left='0%'; p.style.backgroundColor="gray"; p.style.opacity='0.5'; p.style.filter="alpha(opacity=80)"; document.body.appendChild(p); var p1=document.createElement("DIV"); var top=parseInt(parseInt(document.body.scrollHeight)*0.25)+document.body.scrollTop; p1.style.position="absolute"; p1.style.width="300px"; p1.id="p1"; var left=Math.ceil(((document.body.scrollWidth)-parseInt(p1.style.width.replace('px','')))/2)+document.body.scrollLeft; p1.style.height="200px"; p1.style.zIndex='999'; p1.style.top=top+'px'; p1.style.left=left+'px'; p1.style.border="0px solid red"; var html=""; html+="<center>" html+="<div class='p3' style='height:1px;overflow:hidden;background:red;width:294px;border-left:1px solid red;border-right:1px solid red;'></div>" html+="<div class='p2' style='height:1px;overflow:hidden;background:red;width:296px;border-left:1px solid red;border-right:1px solid red;'></div>" html+="<div class='p2' style='height:1px;overflow:hidden;background:red;width:298px;border-left:1px solid red;border-right:1px solid red;'></div>" html+="<div class='p1' style='height:20px;overflow:hidden;background:red;width:300px;border-left:1px solid red;border-right:1px solid red;color:#fff;font-size:9pt;font-weight:bold;text-align:left;'> ⊙ 友情提示:</div>" html+="<div id='c' style='height:150px;width:300px;background-color:#FEEACB;overflow:hidden;border-left:1px solid red;border-right:1px solid red;padding-top:40px;font-size:9pt;'>"+info+"<br><br><br>[ <a href='javascript:this.cancle()'> 关闭</a> ]</div>" html+="<div class='p1' style='height:1px;overflow:hidden;background:#FEEACB;width:298px;border-left:1px solid red;border-right:1px solid red;'></div>" html+="<div class='p2' style='height:1px;overflow:hidden;background:#FEEACB;width:296px;border-left:1px solid red;border-right:1px solid red;'></div>" html+="<div class='p3' style='height:1px;overflow:hidden;background:red;width:294px;border-left:1px solid red;border-right:1px solid red'></div>" html+="</center>" document.body.appendChild(p1); p1.innerHTML=html; var arr=document.getElementsByTagName("select"); var i=0; while(i<arr.length){ arr[i].style.visibility='hidden'; i++; } this.cancle=function(){ document.body.removeChild(document.getElementById('p')); document.body.removeChild(document.getElementById('p1')); var arr=document.getElementsByTagName("select"); var i=0; while(i<arr.length){ arr[i].style.visibility='visible'; i++; } } } </script> </head> <body> <input value='点击弹出提示' type='button' onClick='msg()' /> </body> </html>
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。