JS+CSS3制作炫酷的弹窗效果


Posted in Javascript onNovember 08, 2016

昨天在家看电视时,退出的时候发现了一个弹窗效果,整个背景模糊,觉得这样的效果好炫,要比纯色加透明度高大上好多,连续试了几个界面,最终确定效果由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浏览器中查看

JS+CSS3制作炫酷的弹窗效果

      是不是很神奇,其中起作用的代码就这一行 -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();
})

      这样是不是就完了?很明显不是,看控制台

JS+CSS3制作炫酷的弹窗效果

      当我们弹出窗口外,肯定要禁止掉我们其他层的点击事件,但是我们发现目前我们虽然将其他层模糊化了,但是并没有禁止掉相应的事件,当然解决办法也很简单,我们可以加一层没有背景颜色的遮罩层,覆盖在页面上,这样我们每次点击作用在遮罩层上,自然不会触发底层的事件了。

点击这里查看效果   http://runjs.cn/detail/nrlmmnbg

以上所述是小编给大家介绍的JS+CSS3制作炫酷的弹窗效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用JavaScript 处理 URL 的两个函数代码
Aug 13 Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
js常用自定义公共函数汇总
Jan 15 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
JavaScript数据存储 Cookie篇
Jul 02 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
Js图片点击切换轮播实现代码
Jul 27 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 #Javascript
BootStrap table使用方法分析
Nov 08 #Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 #Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
Nov 08 #Javascript
bootstrapfileinput实现文件自动上传
Nov 08 #Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 #Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 #Javascript
You might like
php中static静态变量的使用方法详解
2010/06/04 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
微信小程序图片自适应实现解析
2020/01/21 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
Python中表示字符串的三种方法
2017/09/06 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
python dict乱码如何解决
2020/06/07 Python
浅析Python 多行匹配模式
2020/07/24 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
读后感作文评语
2014/12/25 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
天气温馨提示语
2015/07/14 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang