亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

如何創建一個JavaScript彈出DIV窗口層的效果

2019-11-20 21:56:56
字體:
來源:轉載
供稿:網友
在本教程中,我將用最通俗的語言和最簡潔的代碼給大家演示如何創建一個JavaScript彈出DIV窗口層的效果。

創建一個彈出DIV窗口可能是現在網站/網頁制作中最常碰到的問題之一。傳統的JavaScript彈窗已經不適合目前網站的設計理念了,理由有二:首先,不友好――生硬的彈出對話框且伴隨著“哐”的一聲對用戶體驗是個很大的挑戰;其次,兼容性不夠強――有相當多的瀏覽器屏蔽了這種JS的Alert()方法。于是,一個良好用戶體驗的網站需要一種更合理的解決方案――使用很少的HTML代碼,很少的CSS代碼和幾行的JavaScript代碼來模擬瀏覽器默認的彈出窗口(即替換掉默認的Alert()界面和功能)。

實現原理:

首先,我們將彈出框中的內容放置在一個特殊的DIV層中,然后默認隱藏它(即初始不可見,使用CSS即可實現)。當用戶執行某個動作時――比如點擊某個鏈接或者將鼠標光標移動到某個鏈接上――我們將之前設置好的隱藏層顯示在所有頁面元素的最上層(將使用JS操作實現)。此外,我們還將在彈出DIV窗口中設置一個按鈕來執行――當用戶點擊此按鈕時關閉窗口的功能。

實現過程:

就如我上面提到的,我們首先需要創建一個特殊的DIV層,然后我們將彈出窗口的內容放在這個DIV層里面。在這里,我們將其ID命名為“popupcontent ”以區別于其他DIV層。

<div id="popupcontent">這是一個DIV彈窗效果!</div>

彈出窗口的CSS修飾代碼:

接下來,讓我們給上面已創建好的這個DIV彈出層進行CSS美化。其中最重要的幾個參數分別是:overflow(內容溢出), visibility(可見性) 和position(定位方式)。同時我也給這個窗口效果添加了很多其他代碼,但這些只是用于美化,使這個窗口更絢麗。所以,我們最后定義的CSS代碼形如:
復制代碼 代碼如下:

#popupcontent{
position: absolute;
visibility: hidden;
overflow: hidden;
border:1px solid #CCC;
background-color:#F9F9F9;
border:1px solid #333;
padding:5px;
}

從上面CSS代碼中的紅色部分可以看出:這個DIV層初始默認狀態是不可見的。

大家可以根據需要對以上代碼進行美化,但請務必保留position,visibility,overflow三個屬性。

JavaScript代碼用于觸發和顯示彈出窗口:

這可能是本教程最重要最有趣的地方了。我們接下來會編寫2個過程函數分別用于顯示和隱藏上面那個DIV彈窗。當然,這兩個函數之中會包含一些主體邏輯。

過程函數中需要順序包含的邏輯:

計算JavaScript彈出窗口在屏幕上的顯示位置(定位);
在彈出窗口中添加一個狀態欄(或按鈕),用于關閉打開狀態下的窗口;
顯示彈出窗口。

為了簡單起見,本例中我們設置的顯示位置是Top:200,Left:200。即以瀏覽器內容框的左上角為坐標,向下偏移200PX,向左偏移200PX。

彈出窗口的大小我們可以在顯示函數的參數中進行設置,包括兩個參數:窗口長度和窗口寬度。

如果你需要將本例中的代碼進行二次開發,有個地方需要特別注意,那就是獲取彈出窗口DIV層的DOM對象,我們可以通過下面這個getElementById函數來獲取ID名為“Popcontent”的DOM對象。
復制代碼 代碼如下:

var popUp = document.getElementById("popupcontent");

在獲取這個(彈出窗口)DOM對象之后,我們可以在JS代碼中修改窗口的相對的位置和窗口大小。
復制代碼 代碼如下:

popUp.style.top = "200px";//窗口距離瀏覽器內容區最上方的偏移值

popUp.style.left = "200px";//窗口距離瀏覽器內容區最左邊的偏移值

popUp.style.width = w + "px";//窗口的寬度

popUp.style.height = h + "px";//窗口的高度

接下來,我們需要給窗口添加一個“關閉”按鈕,用于在窗口開啟狀態下關閉這個窗口。要完美的實現這一功能,首先我們需要聲明一個全局變量,用于存儲彈出窗口DIV中的內容。這是因為,如果你在一個頁面中顯示多個內容不同的彈出窗口,你不需要將按鈕重復的復制到這些DIV層中,這樣就簡化了行為邏輯:
復制代碼 代碼如下:

if (baseText == null) baseText = popUp.innerHTML;

popUp.innerHTML = baseText +

"<div id=/"statusbar/"><button onclick=/"hidePopup();/">Close window <button></div>";

最后一個需要注意的地方是這個“關閉”按鈕的定位問題。這個很容易實現,設置一下這個按鈕對象的向上的空白邊即可(空白邊的數值設置成稍小于整個彈出窗口的DIV高度即可)。

至此,所有的行為邏輯講解完畢,最后的彈窗顯示函數的完整代碼如下:
復制代碼 代碼如下:

var baseText = null;

function showPopup(w,h){
var popUp = document.getElementById("popupcontent");
popUp.style.top = "200px";
popUp.style.left = "200px";
popUp.style.width = w + "px";
popUp.style.height = h + "px";
if (baseText == null) baseText = popUp.innerHTML;
popUp.innerHTML = baseText + "<div id=/"statusbar/"><button onclick=/"hidePopup();
/">Close window<button></div>";
var sbar = document.getElementById("statusbar");
sbar.style.marginTop = (parseInt(h)-40) + "px";
popUp.style.visibility = "visible";
}

隱藏彈出窗口:

隱藏彈出窗口的過程就相當簡單了。只需要首先獲取彈出窗口那個DIV的DOM對象,然后將其屬性設置成“隱藏”即可。
復制代碼 代碼如下:

function hidePopup(){
var popUp = document.getElementById("popupcontent");
popUp.style.visibility = "hidden";
}

拓展HTML代碼最終實現彈窗效果:

我們需要做的就是在某個鏈接或者按鈕的對應事件上添加JS函數“showPopup() ”即可。

比如,需要在鼠標移動到某連接上時彈出窗口:

<a href="#" onmouseover="showPopup(300,200);" >Open popup</a>

需要在鼠標點擊某個連接時彈出窗口:

<a href="#" onclick="showPopup(300,200);" >Open popup</a>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩av在线播放| 久久精品欧美视频| 国产精品一二区| 午夜精品一区二区三区在线视频| 国产原创欧美精品| 在线观看欧美成人| 亚洲一区二区三区四区视频| 欧美大学生性色视频| 91chinesevideo永久地址| 91亚洲国产成人精品性色| 久久夜色精品国产欧美乱| 国产精品免费久久久| 欧美精品久久久久久久久| 亚洲一区二区三区香蕉| 国产精品免费一区豆花| 国产区精品视频| 国产精品国产福利国产秒拍| 伊人久久五月天| 国产亚洲精品一区二区| 国产丝袜精品第一页| 亚洲少妇激情视频| 亲子乱一区二区三区电影| 欧美理论电影在线播放| 热久久免费视频精品| 欧美xxxx18性欧美| 欧美黑人性猛交| 国产精品劲爆视频| 欧美在线观看一区二区三区| 97在线观看免费| 亚洲综合在线播放| 色伦专区97中文字幕| 国产精品678| 中文字幕久久久av一区| 亚洲国产精品va在线看黑人| 久久人人看视频| www国产精品视频| 国产成人精品久久二区二区91| 中文字幕国产日韩| 国产成人综合精品在线| 久久久久久久国产精品视频| 性色av一区二区三区在线观看| 亚洲视频网站在线观看| 中文字幕九色91在线| 精品国产区一区二区三区在线观看| 亚洲精品之草原avav久久| 91禁外国网站| 欧美成人剧情片在线观看| 日韩视频在线免费观看| 国产精品日韩欧美大师| 日韩一区二区av| 欧美一乱一性一交一视频| 亚洲香蕉在线观看| 亚洲欧洲一区二区三区久久| 亚洲欧洲一区二区三区久久| 国产aⅴ夜夜欢一区二区三区| 日本精品中文字幕| 久久天天躁狠狠躁夜夜av| 亚洲人成网站色ww在线| 国产精品自拍网| 韩国视频理论视频久久| 全球成人中文在线| 国产美女精品视频| 上原亚衣av一区二区三区| 亚洲欧洲国产伦综合| 久久久精品国产一区二区| 亚洲国产高潮在线观看| 欧美性xxxxx极品| 欧美日韩精品在线视频| 精品中文视频在线| 久久久久久999| 国产精品免费电影| 久久精品国产亚洲精品| 精品久久久久久久大神国产| 91av网站在线播放| 92福利视频午夜1000合集在线观看| 亚洲高清一二三区| 中文字幕在线看视频国产欧美| 久99九色视频在线观看| 国产日韩精品在线| 亚洲视频777| 欧美激情精品在线| 久久久免费av| 亚州成人av在线| 久久夜色撩人精品| 亚洲成色777777女色窝| 久久综合久久美利坚合众国| 中文字幕日韩欧美精品在线观看| 一本久久综合亚洲鲁鲁| 亚洲国产精久久久久久久| 亚洲wwwav| 不卡伊人av在线播放| 在线a欧美视频| 亚洲欧洲午夜一线一品| 成人性生交大片免费看视频直播| 毛片精品免费在线观看| 亚洲第一网站免费视频| 国产精品视频最多的网站| 2020欧美日韩在线视频| 国产精品久久久久7777婷婷| 国产欧美精品va在线观看| 亚洲精品一区中文字幕乱码| 精品美女国产在线| 亚洲欧美一区二区三区四区| 久久久久九九九九| 91美女片黄在线观| 色综合久久悠悠| 久久久久久高潮国产精品视| 在线亚洲午夜片av大片| 18性欧美xxxⅹ性满足| 精品女厕一区二区三区| 亚洲色图欧美制服丝袜另类第一页| 中文字幕日韩av电影| 久久久久久久久久国产| 成人福利视频网| 亚洲人成在线电影| 欧美夫妻性生活视频| 日本精品久久久久久久| 最近日韩中文字幕中文| 亚洲欧美日韩综合| 亚洲最新在线视频| 91av在线视频观看| 精品国产欧美一区二区三区成人| 日本不卡高字幕在线2019| 成人有码在线播放| 黄色精品在线看| 久久久久久中文| 深夜精品寂寞黄网站在线观看| 国产精品综合网站| 欧美日韩一区二区在线| 国产精品亚发布| 九九视频直播综合网| 亚洲跨种族黑人xxx| 日韩欧美综合在线视频| 国产精品视频色| 日本精品免费一区二区三区| 9.1国产丝袜在线观看| 在线观看久久av| 亚洲国产成人精品电影| 亚洲欧洲免费视频| 亚洲男人天堂手机在线| 91香蕉电影院| 91天堂在线视频| 日韩视频在线观看免费| 精品香蕉在线观看视频一| 国产成人精品视频| 日韩欧美成人精品| 亚洲欧美日韩国产精品| 超碰97人人做人人爱少妇| 日韩在线观看免费全| 91国产美女视频| 欧美一区二区三区免费视| 少妇激情综合网| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品一区二区电影| 久热精品在线视频| 欧美日韩ab片| 亚洲一区二区三区成人在线视频精品| 性欧美视频videos6一9| 亚洲欧美日韩成人| 欧美日韩成人免费| 精品福利视频导航| 久久伊人精品视频| 国产精品第10页| 亚洲精品一区在线观看香蕉|