欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Bootstrap Modal遮罩彈出層(完整版)

 更新時間:2016年11月21日 11:32:32   投稿:mrr  
Bootstrap modal是給外層添加固定fixed,然后內(nèi)容使用自適應(yīng)靠上居中方式。今天分享的這篇文章正是這種方式,感興趣的朋友一起看看吧

之前發(fā)表過一篇文章叫Bootstrap Modal彈窗代碼,其實那個只是一個彈出層代碼而已,并不是仿造Bootstrap的,Bootstrap modal是給外層添加固定fixed,然后內(nèi)容使用自適應(yīng)靠上居中方式。今天分享的這篇文章正是這種方式。

html結(jié)構(gòu)

考慮到內(nèi)容區(qū)域需要居中對齊,所以至少要有一個div來定位和顯示背景,再用一個div居中內(nèi)容,內(nèi)容區(qū)域想分成header、body和footer。

<div class="rs-dialog" id="myModal1">
<div class="rs-dialog-box">
<a class="close" href="#">&times;</a>
<div class="rs-dialog-header">
<h3>標(biāo)題</h3>
</div>
<div class="rs-dialog-body">
<p>內(nèi)容</p>
</div>
<div class="rs-dialog-footer">
<input type="button" class="close" value="Close" style="float:right">
</div>
</div>
</div>

添加樣式

透明背景用background和opacity來實現(xiàn),也可以選擇rgba,只是IE8及以下瀏覽器不支持。為了讓一個position為fixed的div鋪滿整個窗口,可以將其top、right、left、bottom屬性全部設(shè)為0。

當(dāng)內(nèi)容區(qū)域過長時,模擬瀏覽器縱向滾動條,方法是將body(或HTML)的overflow屬性設(shè)為hidden,禁止瀏覽器真正的滾動條出現(xiàn),然后給彈窗最外層的div設(shè)置overflow-y:auto,用這個div的滾動條模擬瀏覽器滾動條。

彈窗打開關(guān)閉時滾動效果用css3 transition來實現(xiàn)。

.dialog-open{
overflow-y:hidden !important;
}
.rs-overlay{
background:#000;
opacity:.5;
filter: alpha(opacity=50);
position: fixed;
z-index: 1000;
top:0;
bottom:0;
left:0;
right:0;
display: none;
}
.rs-dialog{
display: none;
opacity: 0;
overflow: hidden;
position: fixed;
top:0;
bottom:0;
left:0;
right:0;
z-index: 1040;
-webkit-overflow-scrolling: touch;
outline: 0;
/*background: rgba(0,0,0,.5);*/
-webkit-transition: opacity .15s linear;
-o-transition: opacity .15s linear;
transition: opacity .15s linear;
}
.dialog-open .rs-dialog{
overflow-x:hidden;
overflow-y:auto;
}
.rs-dialog.in{
opacity: 1;
}
.rs-dialog .rs-dialog-box {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.rs-dialog.in .rs-dialog-box {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.rs-dialog .rs-dialog-box{
position: relative;
margin:30px auto;
width: 600px;
background-color: #ffffff;
border-radius:10px;
border: 1px solid #999999;
border: 1px solid rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
}
.logged-in .rs-dialog .rs-dialog-box{
margin-top:60px;
}
.rs-dialog-box a.close{
position: absolute;
top: -12px;
right: -12px;
width: 25px;
height: 25px;
padding: 0;
line-height: 25px;
font-size:20px;
font-family:Arial,sans-serif;
font-weight:bold;
text-decoration:none;
text-align:center;
text-shadow: 0 1px 0 #ffffff;
color: #fff;
background-color:#8b8b8b;
border:2px solid #fff;
border-radius: 25px;
box-shadow:0 0 3px 1px #999;
outline: none;
}
.rs-dialog-box a.close:hover{
background-color:#444;
}
.rs-dialog-header{
padding: 20px;
border-bottom: 1px solid #e5e5e5;
}
.rs-dialog-header h3{
font-size: 18px;
}
.rs-dialog-body{
padding: 20px;
line-height: 1.4
}
.rs-dialog-body p{
margin-bottom:10px;
}
.rs-dialog-footer{
padding: 20px;
border-top:1px solid #e5e5e5;
overflow: hidden;
}
@media (max-width: 767px) {
.rs-dialog .rs-dialog-box {
width: auto;
margin: 30px 20px;
}
}

添加控制腳本

大部分用css實現(xiàn),所以腳本通過簡單的addClass和removeClass就可以控制開關(guān)。

還可以增加點擊彈窗外部關(guān)閉窗口的功能。

jQuery(document).ready(function($){
$('body').append('<div class="rs-overlay" />');
$("a[rel='rs-dialog']").each(function(){
var trigger = $(this);
var rs_dialog = $('#' + trigger.data('target'));
var rs_box = rs_dialog.find('.rs-dialog-box');
var rs_close = rs_dialog.find('.close');
var rs_overlay = $('.rs-overlay');
if( !rs_dialog.length ) return true;
// Open dialog
trigger.click(function(){
//Get the scrollbar width and avoid content being pushed
var w1 = $(window).width();
$('html').addClass('dialog-open');
var w2 = $(window).width();
c = w2-w1 + parseFloat($('body').css('padding-right'));
if( c > 0 ) $('body').css('padding-right', c + 'px' );
rs_overlay.fadeIn('fast');
rs_dialog.show( 'fast', function(){
rs_dialog.addClass('in');
});
return false;
});
// Close dialog when clicking on the close button
rs_close.click(function(e){
rs_dialog.removeClass('in').delay(150).queue(function(){
rs_dialog.hide().dequeue();
rs_overlay.fadeOut('slow');
$('html').removeClass('dialog-open');
$('body').css('padding-right', '');
});
return false;
});
// Close dialog when clicking outside the dialog
rs_dialog.click(function(e){
rs_close.trigger('click');
});
rs_box.click(function(e){
e.stopPropagation();
});
});
});

防止網(wǎng)頁內(nèi)容偏移

打開彈窗時給body增加overflow:hidden屬性,導(dǎo)致滾動條消失,這時會使網(wǎng)頁的內(nèi)容往右移動一下,待彈窗打開滾動條再出現(xiàn)時,又會復(fù)原,視覺效果不友好。如果在有滾動條的情況下知道其寬度,給body增加padding-right屬性就可以抵消這個便宜效果。

觸發(fā)彈窗

最后,根據(jù)上面的腳本,觸發(fā)彈窗的鏈接如下

<a href="#" rel="rs-dialog" data-target="myModal">Launch Demo Modal</a>

rel="rs-dialog"表示這是彈窗觸發(fā)鏈接

data-target="myModal"表示要打開HTML ID為myModal的彈窗。

相關(guān)文章

  • js隱藏與顯示回到頂部按鈕及window.onscroll事件應(yīng)用

    js隱藏與顯示回到頂部按鈕及window.onscroll事件應(yīng)用

    現(xiàn)在大多數(shù)網(wǎng)站都會添加這種功能:當(dāng)滾動條滾動到頁面的下方時,頁面的右下角會顯示出來一個“回到頂部”的按鈕或連接;那么,如何控制“回到頂部”按鈕的顯示或隱藏呢;本文介紹詳細(xì)實現(xiàn)方法,感興趣的你可不要走開哦
    2013-01-01
  • DataGear開發(fā)基于three.js的3D數(shù)據(jù)可視化看板的詳細(xì)代碼

    DataGear開發(fā)基于three.js的3D數(shù)據(jù)可視化看板的詳細(xì)代碼

    DataGear?支持采用原生的HTML、JavaScript、CSS制作數(shù)據(jù)可視化看板,也支持導(dǎo)入由npm、vite等前端工具構(gòu)建的前端程序包,這篇文章主要介紹了DataGear制作基于three.js的3D數(shù)據(jù)可視化看板,需要的朋友可以參考下
    2024-02-02
  • 基于JavaScript實現(xiàn)圖片連播和聯(lián)級菜單實例代碼

    基于JavaScript實現(xiàn)圖片連播和聯(lián)級菜單實例代碼

    這篇文章主要介紹了基于JavaScript實現(xiàn)圖片連播和聯(lián)級菜單實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-07-07
  • JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘

    JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘

    這篇文章主要為大家詳細(xì)介紹了JavaScript Canvas編寫炫彩的網(wǎng)頁時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 基于js文件加載優(yōu)化(詳解)

    基于js文件加載優(yōu)化(詳解)

    下面小編就為大家分享一篇基于js文件加載優(yōu)化(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 在百度知道團(tuán)隊中快速審批新成員的js腳本

    在百度知道團(tuán)隊中快速審批新成員的js腳本

    每天都有大量網(wǎng)友申請加入我的團(tuán)隊,于是審核團(tuán)隊新成員成了一個費(fèi)力氣的活兒,在此情況下,我寫了個腳本,自動計算他們的回答采納率,采納率低于20%的自動打勾 選中,等級太低的人也自動打勾選中
    2014-02-02
  • 不用typsescript如何使用類型增強(qiáng)功能

    不用typsescript如何使用類型增強(qiáng)功能

    這篇文章主要給大家介紹了關(guān)于不用typsescript如何使用類型增強(qiáng)功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • js+canvas實現(xiàn)紙牌游戲

    js+canvas實現(xiàn)紙牌游戲

    這篇文章主要為大家詳細(xì)介紹了js+canvas實現(xiàn)紙牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 最新JavaScript判斷是否是360瀏覽器方法

    最新JavaScript判斷是否是360瀏覽器方法

    這篇文章主要給大家介紹了關(guān)于最新JavaScript判斷是否是360瀏覽器方法的相關(guān)資料,我們在做項目的時候有用到判斷不同瀏覽器的這個需求,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-07-07
  • ?JavaScript?數(shù)據(jù)結(jié)構(gòu)之散列表的創(chuàng)建(2)

    ?JavaScript?數(shù)據(jù)結(jié)構(gòu)之散列表的創(chuàng)建(2)

    這篇文章主要介紹了?JavaScript?數(shù)據(jù)結(jié)構(gòu)之散列表的創(chuàng)建,主要看如何處理散列值沖突的問題,并實現(xiàn)更完美的散列表。下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-04-04

最新評論