在點選登入注冊後通常要建立遮罩層,使整個螢幕隻能操作登入視窗部分的内容。首先需要設定彈出框的z-index值為3,使彈出層距離使用者更近。還需要建立一個div寬高占滿整個螢幕,用來做遮罩層。(z-index=2)。同時設定這兩個div都隐藏,當觸發點選事件時再顯示。
HTML代碼:
<a class="navigation1-a" οnclick="show_Win('register', 'movingbar1', event)" href="#" target="_blank" rel="external nofollow" >還沒賬号?現在注冊</a>
下面是JS代碼:
function show_Win(div_Win, tr_Title, event) {//參數1:要顯示的div的id,參數2:div裡的頭部,可移動的地方。參數3:暫時沒用。
var js_Title = $(document.getElementById("tr_Title")); //标題
js_Title.css("cursor", "move"); //改變光标為可移動的圖案
//擷取彈出層
var msgObj = $("#" + div_Win); //要彈出的div的id名
msgObj.css('display', 'block'); //必須先彈出此行,否則msgObj[0].offsetHeight為0,因為"display":"none"時,offsetHeight無法取到資料;如果彈出框為table,則為'',如果為div,則為block,否則textbox長度無法充滿td
//y軸位置
var js_Top = -parseInt(msgObj.height()) / 2 + "px";
//x軸位置
var js_Left = -parseInt(msgObj.width()) / 2 + "px";
msgObj.css({
"margin-left": js_Left,
"margin-top": js_Top
});
document.getElementById('bg').style.display = 'block';//遮罩層
document.documentElement.style.overflowY = 'hidden'; //禁止螢幕滾動
//使彈出層可移動
msgObj.draggable({
handle: js_Title,
scroll: false
});
}
//關閉彈出層
function closeLogin() {
var closeRegisterPageLayerButton1 = document.getElementById("register");
var closeRegisterPageLayerButton2 = document.getElementById("Login"); //根據ID擷取登入彈窗對象
closeRegisterPageLayerButton1.style.display = "none"; //給彈窗對象設定關閉操作
closeRegisterPageLayerButton2.style.display = "none";
document.getElementById('bg').style.display = 'none'; //關閉遮罩層
document.documentElement.style.overflowY = 'scroll'; //螢幕可滾動
}
注:本人為JS實習生一枚,不斷學習,不斷進步,歡迎各位前輩批評指教。