【JavaScript 13—应用总结】:锁屏遮罩
来源:互联网 发布:java正则匹配汉字 编辑:程序博客网 时间:2024/04/27 21:25
导读:上次说了,当弹出登录框时,由于背景色和弹出框时一样的,这样子,其实比较难聚焦到底该操作哪一块。所以,如果,有了颜色的区分,那么通过屏幕遮罩的效果,就可以将我们希望要被处理的东西突出显示。也就达到了一个间接聚集的效果。
一、实现分析
锁屏遮罩,其实是在作品展的时候,和小伙伴一起用过。当时本来是一个新实现的功能,结果被师姐说费事儿了。现在,觉得这样的遮罩功能在某些层面上,还是有用的。至少可以通过一个明暗的对比,突出显示出我们想要显示的东西。
首先,锁屏遮罩是针对于整个屏幕来说的,所以,需要有一个对于整个屏幕的CSS样式设置,主要是颜色和透明度的设置。
其次,因为浏览器的大小是不确定的,所以在不同大小的浏览器上设置锁屏,则需要获取当前屏幕的长、宽,也就是获取当前视口的大小。
然后,需要有一个锁屏的方法,既然有了锁屏的方法(当锁屏时,只允许操作突出显示的东西,别的东西失效),那么当退出弹出框的时候,则相应的有一个取消锁屏的方法。
最后,在需要的弹出框显示的时候,同时调用锁屏的方法。退出时,同理。
附:效果图
二、具体实现
2.1,锁屏CSS
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">/* 设置屏幕样式 */#screen{position:absolute;top:0;left:0;background:#000;z-index:1;filter:alpha(opacity=30);opacity:0.3;display:none;}</span></span>
注:需要在HTML中增加一个div控制全屏。而这里的z-index,则是将锁屏变暗的屏幕至于最底层,所以同时需要在现实的div样式中,将z-index进行相应的设置,如没有别的设置,总共只有两层,可以设置为2。
2.2,获取视口(跨浏览器)
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">function getInner(){if(typeof window.innerWidth!="undefined"){return{width:window.innerWidth,height:window.innerHeight}}else{return{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}}}</span></span>
2.3,锁屏
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">Base.prototype.lock=function(){for(var i=0;i<this.elements.length;i++){this.elements[i].style.width=getInner().width+"px";this.elements[i].style.height=getInner().height+"px";this.elements[i].style.display="block";}return this;}</span></span>
首先是通过视口大小,结合设置的CSS颜色透明度,将窗口改变,然后,将设置好的CSS显示,也就是改变其display样式。
2.4,取消锁屏
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">//取消锁屏功能Base.prototype.unlock=function(){for(var i=0;i<this.elements.length;i++){this.elements[i].style.display="none";}return this;}</span></span>
将显示出的CSS样式隐藏。
2.5,运用(弹出登陆框为例)
1,在浏览器改变视口大小时,如果锁屏遮罩显示,那么则执行锁屏。
2,在弹出登陆框时,执行锁屏。
3,在退出登录框时,关闭锁屏。
三、个人感受
1,通过锁屏遮罩,可以控制浏览器窗口的物件的有效性,通过颜色明暗的对比,设置出整个浏览器的层次性。但是,在我们运用的大多数浏览器中,屏幕可以拖动,弹出框可以拖动,甚至可以随着滚动条的移动而自行移动。那么这个将怎么处理呢?
2,这样虽然实现了锁屏遮罩,但在弹出框出现的同时,背景色同时改变,这样子会不会显得太突兀,怎样实现一个渐变的效果呢?
3,锁屏后,屏幕上的主要按钮,如:个人中心、登录、注册、logo主页等到底该不该失效?怎样在锁屏的过程中将自己不想其失效的物件变得有效?
以上都是遗留的问题,需要进一步的学习解决!
- 【JavaScript 13—应用总结】:锁屏遮罩
- 【JavaScript 10—应用总结】:连缀
- 【JavaScript 11—应用总结】:下拉菜单
- JavaScript知识总结—cookie及其应用
- 日常应用javascript总结
- 【JavaScript 12—应用总结】:弹出登录框
- JavaScript总结(3)-javascript中应用正则表达式
- javascript——ajax应用
- JavaScript——BOM应用
- JavaScript强化教程——JavaScript 总结
- JavaScript强化教程——JavaScript 总结
- JavaScript学习总结——JavaScript数组
- JavaScript学习总结(六)——JavaScript判断数据类型总结
- JavaScript学习总结(六)——JavaScript判断数据类型总结
- JavaScript学习总结(六)——JavaScript判断数据类型总结
- JavaScript应用
- JavaScript应用
- JavaScript应用
- mysql数据库导出导入
- chrome只有在服务器目录下才能显示xsl格式的xml
- [Android]自定义dialog
- NYOJ266 字符串逆序输出
- codevs1031
- 【JavaScript 13—应用总结】:锁屏遮罩
- STL map的基本成员函数
- uva 672(dp)
- android开发工程师三大历程
- 设计模式_抽象工厂模式
- 2015年7月17日 午後3時のニュース NHK新闻稿
- codeforces558C Amr and Chemistry
- 算法导论,最优钢条切分
- (算法入门)基本图论-广度优先搜索之JAVA实现