昨天在家看電視時,退出的時候發現了乙個彈窗效果,整個背景模糊,覺得這樣的效果好炫,要比純色加透明度高大上好多,連續試了幾個介面,最終確定效果由css實現的,於是今天一大早來到公司便趕緊搜尋了一下,雖然相容性奇差,但是乙個css屬性就可以搞定。瞬間感覺自己知道的真是太少了~~
首先回憶一下彈窗的實現,一般我們分為兩層,彈出視窗層(popus)和遮罩層(mask),通常情況下我習慣就這兩元素全部設成fixed定位,具體和absolute區別一試便知。對於mask層自不用多少,我們如下給他設定屬性,讓他鋪滿整個螢幕。
.maskpopus層則要稍微麻煩點兒,這裡我們有兩種實現方法
1.已知大小的彈窗,如下,主要通過top,left與負的margin來實現。
.popus2.未知彈窗大小,則通過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.rightjs:
$('.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...