日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

炫酷弹窗效果制作

發布時間:2023/11/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 炫酷弹窗效果制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

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


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

???? 言歸正傳,下面我們回歸到正題,即讓元素實現ps中高斯模糊的效果。
???? 這里引出一個css屬性:filter,注意這里的filter并不是ie中的filter,filter有很多值,感興趣的可以點擊這里,作者講的非常詳細。我們今天只講其中的一個blur,首先看下面的預覽圖

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

??????

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

<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(); })

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

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

點擊這里查看效果?? http://runjs.cn/detail/nrlmmnbg

轉載于:https://www.cnblogs.com/mopagunda/p/6042361.html

總結

以上是生活随笔為你收集整理的炫酷弹窗效果制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。