如何實現全屏遮罩層效果
本章節介紹一下如何實現點選按鈕能夠彈出一個彈出層,並且這個彈出層是全屏的。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> function show(){ var win=document.getElementById("win"); win.style.display="block"; win.style.position="absolute"; win.style.top="50%"; win.style.left="50%"; win.style.marginTop="-75px"; win.style.marginLeft="-150px"; win.style.background="cyan"; win.style.width="300px"; win.style.height="200px"; win.style.zIndex="1000"; var mark = document.createElement("div"); mark.setAttribute("id","mark"); mark.style.background="#000"; mark.style.width="100%"; mark.style.height="100%"; mark.style.position="absolute"; mark.style.top="0"; mark.style.left="0"; mark.style.zIndex="500"; mark.style.opacity="0.3"; mark.style.filter="Alpha(opacity=30)"; document.body.appendChild(mark); } window.onload=function(){ var obt=document.getElementById("bt"); obt.onclick=function(){ show(); } } </script> </head> <body> <center> <div><input type="button" value="檢視效果" id="bt" /></div> <div id="win" style="display:none;"></div> </center> </body> </html>
上面的程式碼中,點選按鈕可以彈出一個全屏的遮罩層效果,但是它並不是完美的。
因為當玩野的內容超出一屏的高度的時候,就會出現滾動條,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body { margin:0px; padding:0px; } #antzone { margin:0px auto; width:20px; height:1200px; background:#ccc; } </style> <script type="text/javascript"> function show(){ var win=document.getElementById("win"); win.style.display="block"; win.style.position="absolute"; win.style.top="50%"; win.style.left="50%"; win.style.marginTop="-75px"; win.style.marginLeft="-150px"; win.style.background="cyan"; win.style.width="300px"; win.style.height="200px"; win.style.zIndex="1000"; var mark = document.createElement("div"); mark.setAttribute("id","mark"); mark.style.background="#000"; mark.style.width="100%"; mark.style.height="100%"; mark.style.position="absolute"; mark.style.top="0"; mark.style.left="0"; mark.style.zIndex="500"; mark.style.opacity="0.3"; mark.style.filter="Alpha(opacity=30)"; document.body.appendChild(mark); } window.onload=function(){ var obt=document.getElementById("bt"); obt.onclick=function(){ show(); } } </script> </head> <body> <center> <div><input type="button" value="檢視效果" id="bt" /></div> <div id="win" style="display:none;"></div> </center> <div id="antzone"></div> </body> </html>
但是如果高度超過一屏的話,就會出現滾動條,下拉滾動條的話,那就有點慘不忍睹了。
上面的問題還是很好解決的,只要給body新增一個overflow:hidden即可:
[JavaScript] 純文字檢視 複製程式碼document.body.style.overflow = "hidden";
但是上面的程式碼還不夠完美,因為有可能我們彈出的那個視窗高度是很大的,看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body { margin:0px; padding:0px; } #antzone { margin:0px auto; width:20px; height:1200px; background:#ccc; } </style> <script type="text/javascript"> function show(){ var win=document.getElementById("win"); win.style.display="block"; win.style.position="absolute"; win.style.top="50%"; win.style.left="50%"; win.style.marginTop="-75px"; win.style.marginLeft="-150px"; win.style.background="cyan"; win.style.width="300px"; win.style.height="800px"; win.style.zIndex="1000"; var mark = document.createElement("div"); mark.setAttribute("id","mark"); mark.style.background="#000"; mark.style.width="100%"; mark.style.height="100%"; mark.style.position="absolute"; mark.style.top="0"; mark.style.left="0"; mark.style.zIndex="500"; mark.style.opacity="0.3"; mark.style.filter="Alpha(opacity=30)"; document.body.appendChild(mark); document.body.style.overflow = "hidden"; } window.onload=function(){ var obt=document.getElementById("bt"); obt.onclick=function(){ show(); } } </script> </head> <body> <center> <div><input type="button" value="檢視效果" id="bt" /></div> <div id="win" style="display:none;"></div> </center> <div id="antzone"></div> </body> </html>
上面的程式碼中,彈出視窗的高度是800px,但是由於設定了body的overflow:hidden,所以沒法顯示完整。
在這種情況下,我們也需要計算遮罩層的高度了,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body { margin:0px; padding:0px; } #antzone { margin:0px auto; width:20px; height:1200px; background:#ccc; } </style> <script type="text/javascript"> function show(){ var win=document.getElementById("win"); win.style.display="block"; win.style.position="absolute"; win.style.top="50%"; win.style.left="50%"; win.style.marginTop="-75px"; win.style.marginLeft="-150px"; win.style.background="cyan"; win.style.width="300px"; win.style.height="800px"; win.style.zIndex="1000"; var mark = document.createElement("div"); mark.setAttribute("id","mark"); mark.style.background="#000"; mark.style.width="100%"; mark.style.height=document.body.offsetHeight+"px"; mark.style.position="absolute"; mark.style.top="0"; mark.style.left="0"; mark.style.zIndex="500"; mark.style.opacity="0.3"; mark.style.filter="Alpha(opacity=30)"; document.body.appendChild(mark); } window.onload=function(){ var obt=document.getElementById("bt"); obt.onclick=function(){ show(); } } </script> </head> <body> <center> <div><input type="button" value="檢視效果" id="bt" /></div> <div id="win" style="display:none;"></div> </center> <div id="antzone"></div> </body> </html>
上面的核心程式碼如下:
[JavaScript] 純文字檢視 複製程式碼mark.style.height=document.body.offsetHeight+"px";
相關文章
- 10種風格迥異的全屏遮罩層效果遮罩
- css如何實現div全屏效果CSS
- 彈出一個全屏灰黑色透明遮罩效果遮罩
- 【譯】CSS遮罩實現過渡效果CSS遮罩
- 純 CSS 實現縷空遮罩層CSS遮罩
- 【unity小技巧】實現FPS武器的瞄準放大效果(UGUI實現反向遮罩,全屏遮擋,區域性鏤空效果)UnityUGUI遮罩
- 絕對定位實現全屏效果
- 為app實現漸變的遮罩效果APP遮罩
- 帶有滾動條的全屏遮罩層程式碼例項遮罩
- 根據滑鼠的方位出現遮罩層效果程式碼例項遮罩
- 遮罩層遮罩
- LPL Ban/Pick 選人階段的遮罩效果是如何實現的?遮罩
- 實現背景圖片的全屏拉伸效果
- Qt實現遮罩效果並可以拖動伸縮QT遮罩
- javascript實現的控制瀏覽器全屏效果 [JavaScript瀏覽器
- jquery實現的背景圖鋪滿全屏效果jQuery
- 滑鼠懸浮遮罩層動畫方式滑動切換效果遮罩動畫
- 帶有半透明效果的遮罩層程式碼例項遮罩
- 滑鼠懸浮出現圓形資訊遮罩層遮罩
- 進階!Cocos Creator 中使用模板測試實現遮罩效果遮罩
- css3實現邊框具有動態環形遮罩效果CSSS3遮罩
- CSS:遮罩效果、陰影效果、毛玻璃效果CSS遮罩
- CSS滑鼠懸浮出現遮罩層程式碼演示CSS遮罩
- js元素全屏和退出全屏效果JS
- css實現div全屏水平垂直居中效果程式碼例項CSS
- 如何實現倒影效果
- 能夠感知滑鼠移動方位的遮罩層效果程式碼例項遮罩
- 遮罩效果的焦點圖遮罩
- Android自定義遮罩層Android遮罩
- 微信小程式功能之全屏滾動效果的實現程式碼微信小程式
- js實現彈出層滑鼠跟隨效果JS
- 微信小程式 遮罩功能實現微信小程式遮罩
- CSS 如何實現羽化效果?CSS
- Laya引擎Dialog遮罩層無法移除如何解決遮罩
- FullPage.js – 輕鬆實現全屏滾動(單頁網站)效果JS網站
- Flash遮罩做地球旋轉效果遮罩
- 遮罩層禁止頁面滾動遮罩
- jQuery根據滑鼠進入的方位出現動畫遮罩效果jQuery動畫遮罩