炫酷彈窗效果製作

2022-03-25 05:47:12 字數 1846 閱讀 9123

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

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

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

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

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

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

.popus
主要通過translate屬性來設定,偏移的值百分比是相對於本身的寬高,因此從原理上來說跟第一種寫法有異曲同工之妙,不過使用卻更方便。

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

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

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

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

效果是不是要好過純色加透明呢

<

div>

<

div

class

='left

btn '

>確實不錯

div>

<

div

class

='right

btn'

>也就那樣

div>

div>

div>

css:

*img.bg.blur.popus.popus div.popus div.btn.left.popus div.btn.right
js:

$('.bg').on('click',function

())$('.btn').on('click',function

())

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

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

點選這裡檢視效果  

使用Shader製作炫酷的死亡溶解效果

前段時間在開發rpg遊戲時用到了shader怪物死亡溶解特效,所以在這裡介紹下用法 效果圖 貼圖設定 diffuse ambient光照計算 fixed3 worldnormal normalize i.worldnormal fixed3 worldlightdir normalize world...

滑鼠跟隨炫酷效果

canvas畫布上監聽滑鼠移動事件並畫圖,隨機小球顏色,隨機小球運動方向,當小球透明度到一定程度,清除小球 js var canvas document.getelementbyid demo var ctx canvas.getcontext 2d var starlist function si...

css製作網頁酷炫按鈕

css製作網頁酷炫按鈕 當然啦,源 也會給大家的,一起學習一起進步!html doctype html en utf 8 stylesheet type text css href 2.css css按鈕特效 title head button a button a button a body ht...