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

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

Dec 07, 2016 pm 01:50 PM

昨天在家看電視時,退出的時候發現了一個彈窗效果,整個背景模糊,覺得這樣的效果好炫,要比純色加透明度高大上好多,連續試了幾個界面,最終確定效果由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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1262
29
C# 教程
1235
24