JavaScript 點選頁面其他地方關閉視窗
彈窗效果中,通常有這樣設定的,點選彈窗本身,除非是關閉按鈕,不會將彈窗關閉。
但是點選網頁的其他部分就能夠將視窗關閉,下面通過程式碼例項介紹一下如何實現此效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ font-size:12px; font-family:Verdana, Geneva, sans-serif; line-height:14px } a{color:#039} a:hover{color:#f60} .pop{ position:absolute; left:40%; top:40%; width:300px; height:100px; background:#eee; border:1px solid #ccc } .pop_head{ position:relative; height:20px; background:#ccc } .pop_head a{ position:absolute; right:8px; line-height:20px; color:#000; text-decoration:none } .pop_head a:hover{ color:#f60; text-decoration:none } .pop_body{padding:8px} </style> <script type="text/javascript"> function show(ev,id){ var ev=window.event||ev; ev.stopPropagation?ev.stopPropagation():ev.cancelBubble=true; var obj=document.getElementById(id); obj.style.display=""; } function hide(evt,id){ var obj=document.getElementById(id); var target=evt.target?evt.target:evt.srcElement; if(target.id=="pop"||target.id=="pop_head"||target.id=="pop_body") return; else obj.style.display="none"; } document.onclick=function(ev){ var ev=window.event||ev; hide(ev,'pop'); } window.onload=function(){ var theclose=document.getElementById("closeid"); var theshow=document.getElementById("showid"); theclose.onclick=function(){ var ev=window.event||ev; hide(ev,'pop') } theshow.onclick=function(ev){ var ev=window.event||ev; show(ev,"pop") } } </script> </head> <body> <div id="pop" class="pop" style="display:none"> <div id="pop_head" class="pop_head"><a href="javascript:void(0);" id="closeid">關閉</a></div> <div id="pop_body" class="pop_body">螞蟻部落歡迎您</div> </div> <a href="javascript:void(0);" id="showid">彈出按鈕</a> </body> </html>
只有點選彈出的關閉按鈕和彈窗以外的區域可以關閉彈窗,下面介紹一下實現過程。
一.程式碼註釋:
(1).function show(ev,id){},使隱藏視窗顯示,第一個引數是事件物件,第二個是id屬性值。
(2).var ev=window.event||ev,實現事件物件的瀏覽器相容性。
(3).ev.stopPropagation?ev.stopPropagation():ev.cancelBubble=true,阻止事件冒泡,否則無法顯示彈窗,因為在document物件上註冊了onclick事件,此事件處理函式能夠關閉彈窗。
(4).var obj=document.getElementById(id),獲取指定id的物件。
(5).obj.style.display="",顯示彈窗。
(6).function hide(evt,id){},此函式用來隱藏彈窗,第一個引數是事件物件,第二個是id屬性值。
(7).var obj=document.getElementById(id),獲取指定id屬性值的物件。
(8).var target=evt.target?evt.target:evt.srcElement,獲取事件源物件。
(9).if(target.id=="pop"||target.id=="pop_head"||target.id=="pop_body") return; else obj.style.display="none"; ,如果點選的是彈窗的關閉按鈕和彈窗之外的區域就隱藏彈窗。
(10).document.onclick=function(ev),為document物件註冊onclick事件處理函式。
(11).hide(ev,'pop'),隱藏彈窗的函式,第一個引數是事件物件,第二個是id屬性值。
二.相關閱讀:
(1).var ev=window.event||ev參閱var ev=window.event||ev一章節。
(2).stopPropagation()參閱JavaScript stopPropagation()一章節。
(3).target參閱JavaScript event.target一章節。
相關文章
- javscript/jquery 點選頁面其他地方關閉某個divjQuery
- jQuery點選頁面其他地方隱藏指定元素詳解jQuery
- JavaScript 倒數計時關閉頁面JavaScript
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- winform 跨視窗點選ORM
- PyQt5 之關閉視窗QT
- MyEclipse的html頁面 design檢視中 關閉視覺化介面EclipseHTML視覺化
- PyQT5之訊號關閉視窗QT
- 警惕遊戲融資視窗正在關閉遊戲
- 0x02. 處理視窗關閉
- C# winForm 視窗跳轉後關閉上一個視窗的方法C#ORM
- 切換電腦頁面、視窗快捷鍵
- win10彈窗熱點資訊怎麼關閉_win10熱點資訊彈窗的關閉方法Win10
- 如何禁用控制檯視窗的關閉按鈕?
- WPF通過附加屬性控制視窗關閉
- 帶有半透明遮罩層可關閉視窗遮罩
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- 微信內關閉當前頁面
- 點選頁面愛心效果
- win10系統老是彈出可選功能怎樣關閉_win10總彈出可選功能視窗的關閉教程Win10
- Qt 彈出的子頁面在未關閉的情況下,關閉主窗體,程式不退出的情況解決QT
- 防止頁面按鈕多次點選
- Mac新手教程:如何關閉訪達的預覽視窗?Mac
- win10系統怎麼關閉視窗分屏功能Win10
- 網頁關閉網頁
- Selenium常用操作——關閉頁面和瀏覽器瀏覽器
- WKWebView 獲取網頁高度,圖片點選檢視,網頁連結點選WebView網頁
- php短視訊系統,點選按鈕開啟wifi或者關閉wifiPHPWiFi
- JavaScript 視窗抖動效果JavaScript
- win10快捷鍵關閉當前視窗怎麼操作_win10快捷鍵快速關掉所有視窗方法Win10
- 一次性關閉所有開啟的word視窗
- iOS 封裝頁數控制,點選NavigationTabBar切換頁面iOS封裝NavigationtabBar
- 模擬在頁面點選匯入csv
- 頁面怎麼做點選表頭排序排序
- Vue中在新視窗開啟頁面 及 Vue-routerVue
- 下拉選單「點選外面關閉」的終極解決方案
- [Electron] 應用不關閉視窗退出而是保留到後臺執行
- 視窗介面設計規範:介面關閉方式及介面疊加