搜尋
首頁php教程PHP开发JS+CSS3製作酷炫的彈跳窗效果

昨天在家看電視時,退出的時候發現了一個彈窗效果,整個背景模糊,覺得這樣的效果好炫,要比純色加透明度高大上好多,連續試了幾個界面,最終確定效果由css實現的,於是今天一大早來到公司便趕緊搜索了一下,雖然兼容性奇差,但是一個css屬性就可以搞定。瞬間感覺自己知道的真是太少了~~

       首先回想一下彈窗的實現,一般我們分為兩層,彈出窗口層(popus)和遮罩層(mask),通常情況下我習慣就這兩元素全部設成fixed定位,具體和absolute區別一試便知。對於mask層自不用多少,我們如下給他設定屬性,讓他鋪滿整個螢幕。

.mask{position:fixed;top:0px;bottom:0px;left:0px;right:0px;background-color:#000;opacity:0.6;filter:alpha(opacity=60)}

   

popus層則要稍微麻煩點兒,這裡我們有兩種實現方法

       1.已知大小的彈窗,如下,主要通過top,left與負的margin來實現。

.popus{width:300px;height:200px;position:fixed;left:50%;top:50%;margin-left:-150px;margin-top:-100px;background-color:#000}

   

      2.未知彈窗大小,則透過js取得彈窗層的width與height,然後在進行如上設置,在此不多述。

       3.在支援css3的情況下,我們不需要知道彈窗的寬高,可進行如下設定

.popus{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%)}

   

  寬高,因此從原理上來說跟第一種寫法有異曲同工之妙,不過使用卻更方便。

     言歸正傳,以下我們回歸到正題,也就是讓元素實現ps中高斯模糊的效果。  

    這裡引出css屬性:filter,注意這裡的filter不是ie中的filter,filter有許多值,有興趣的可以點選這裡,作者講的非常詳細。我們今天只講其中的一個blur,首先看下面的預覽圖

    ps:目前來說該屬性只支援webkit瀏覽器,所以我們直接使用了css3屬性,效果也需要在webkit瀏覽器中查看

JS+CSS3製作酷炫的彈跳窗效果

      是不是很神奇,其中起作用的程式碼就這一行-webkit-filter:blur(8px) ,後面的像素值即代表模糊程度,當然在日常專案中,我們還可以加一些動畫,使頁面更加的生動,此案例完整程式碼如下:

<div class=&#39;bg&#39;>
 <img  src=&#39;bg.jpg&#39; / alt="JS+CSS3製作酷炫的彈跳窗效果" >
</div>
<div class=&#39;popus&#39;>
 效果是不是要好过纯色加透明呢
 <div>
 <div class=&#39;left btn &#39;>确实不错</div>
 <div class=&#39;right btn&#39;>也就那样</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}

   

是不是就完了?很明顯不是,看控制台

     當我們彈出窗口外,肯定要禁止掉我們其他層的點擊事件,但是我們發現目前我們雖然將其他層模糊化了,但是並沒有禁止掉相應的事件,當然解決辦法也很簡單,我們可以加一層沒有背景顏色的遮罩層,覆蓋在頁面上,這樣我們每次點擊作用在遮罩層上,自然不會觸發底層的事件了。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具