昨天在家看電視時,退出的時候發(fā)現(xiàn)了一個彈窗效果,整個背景模糊,覺得這樣的效果好炫,要比純色加透明度高大上好多,連續(xù)試了幾個界面,最終確定效果由css實現(xiàn)的,于是今天一大早來到公司便趕緊搜索了一下,雖然兼容性奇差,但是一個css屬性就可以搞定。瞬間感覺自己知道的真是太少了~~
?????? 首先回憶一下彈窗的實現(xiàn),一般我們分為兩層,彈出窗口層(popus)和遮罩層(mask),通常情況下我習(xí)慣就這兩元素全部設(shè)成fixed定位,具體和absolute區(qū)別一試便知。對于mask層自不用多少,我們?nèi)缦陆o他設(shè)置屬性,讓他鋪滿整個屏幕。
.mask{position:fixed;top:0px;bottom:0px;left:0px;right:0px;background-color:#000;opacity:0.6;filter:alpha(opacity=60)}
popus層則要稍微麻煩點兒,這里我們有兩種實現(xiàn)方法
1.已知大小的彈窗,如下,主要通過top,left與負的margin來實現(xiàn)。
.popus{width:300px;height:200px;position:fixed;left:50%;top:50%;margin-left:-150px;margin-top:-100px;background-color:#000}
2.未知彈窗大小,則通過js獲取彈窗層的width與height,然后在進行如上設(shè)置,在此不多述。
3.在支持css3的情況下,我們不需要知道彈窗的寬高,便可進行如下設(shè)置
.popus{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%)}
主要通過translate屬性來設(shè)置,偏移的值百分比是相對于本身的寬高,因此從原理上來說跟第一種寫法有異曲同工之妙,不過使用卻更方便。
言歸正傳,下面我們回歸到正題,即讓元素實現(xiàn)ps中高斯模糊的效果。
這里引出一個css屬性:filter,注意這里的filter并不是ie中的filter,filter有很多值,感興趣的可以點擊這里,作者講的非常詳細。我們今天只講其中的一個blur,首先看下面的預(yù)覽圖
ps:目前來說該屬性只支持webkit瀏覽器,所以我們直接使用了css3屬性,效果也需要在webkit瀏覽器中查看
是不是很神奇,其中起作用的代碼就這一行 -webkit-filter:blur(8px) ,后面的像素值即代表模糊程度,當(dāng)然在日常項目中,我們還可以加一些動畫,使頁面更加的生動,本案例完整代碼如下:
<div class='bg'> <img src='bg.jpg' /> </div> <div class='popus'> 效果是不是要好過純色加透明呢 <div> <div class='left btn '>確實不錯</div> <div class='right btn'>也就那樣</div> </div> </div>
css:
*{padding:0px;margin:0px} img{width:100%;margin:0px auto;display:block} .bg.blur{-webkit-filter:blur(8px)} .popus{width:400px;color:#000;;position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);font-family:"微軟雅黑";padding:20px 0px;font-weight:bold;background-color:rgba(255,255,255,0.6);border-radius:18px;text-align:center;padding:30px 0px;box-shadow:0px 0px 10px rgba(0,0,0,0.4);display:none} .popus div{width:220px;margin:10px auto} .popus div.btn{width:80px;padding:5px 10px;color:#000} .left{float:left;border:1px solid #000} .popus div.btn.right{float:right;color:#666}
js:
$('.bg').on('click',function(){ console.log(98) $(this).addClass('blur'); $('.popus').show(); }) $('.btn').on('click',function(){ $('.bg').removeClass('blur'); $('.popus').hide(); })
? ?
????? 這樣是不是就完了?很明顯不是,看控制臺
? ? ?當(dāng)我們彈出窗口外,肯定要禁止掉我們其他層的點擊事件,但是我們發(fā)現(xiàn)目前我們雖然將其他層模糊化了,但是并沒有禁止掉相應(yīng)的事件,當(dāng)然解決辦法也很簡單,我們可以加一層沒有背景顏色的遮罩層,覆蓋在頁面上,這樣我們每次點擊作用在遮罩層上,自然不會觸發(fā)底層的事件了。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
