js+css实现模态层效果
2014-10-21 13:50
225 查看
在做web前端的时候,有些时候会涉及到模态层,在此提供一种实现思路,希望对大家有用。先贴效果吧:
![](http://img.blog.csdn.net/20141021133454199?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTU2hpWGlTaGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
模态层效果
下面说说在写模态层的时候的思路:通过可配置的参数width,height,title以及content用来设定弹出的信息框显示的内容,并通过可配置参数container用来设定模态层显示的区域。思路很简单,主要是一些css样式和js处理,详见源码:
modal.css
jquery.modal.js
页面端涉及到的样式:
调用modal插件:
其中,content可为html代码。
源码下载
模态层效果
下面说说在写模态层的时候的思路:通过可配置的参数width,height,title以及content用来设定弹出的信息框显示的内容,并通过可配置参数container用来设定模态层显示的区域。思路很简单,主要是一些css样式和js处理,详见源码:
modal.css
html,body{ font-size: 12px; font-family: "微软雅黑"; } .modal{ position: absolute; top:0px; left: 0px; border: 1px solid #000; background: #555; opacity: 0.4; } .infowin{ border: 1px solid #777777; background: #fff; box-shadow: 0 0 0.75em #777777; -moz-box-shadow: 0 0 0.75em #777777; -webkit-box-shadow: 0 0 0.75em #777777; -o-box-shadow: 0 0 0.75em #777777; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; } .title{ border-bottom: 1px solid #777777; } .title_content{ padding: 5px; padding-left: 10px; font-size: 14px; font-family: "微软雅黑"; font-weight: bold; } .close{ background: url(close.png) no-repeat; width: 25px; height: 25px; float: right; } .close:hover{ cursor: pointer; } .content{ padding-left: 10px; padding-top: 10px; }
jquery.modal.js
(function($){ $.fn.modalInfowindow = function(options){ var defaults = {}; var options = $.extend(defaults, options); var container=$(this); var width=options.width, height=options.height, title=options.title, content=options.content; //模态层容器 var modal=$("<div id='modal'></div>"); modal.css("width","100%"); modal.css("height","100%"); //模态层 var modal_div=$("<div class='modal'></div>"); modal_div.css("width","100%"); modal_div.css("height","100%"); //信息框 var infoWin=$("<div class='infowin'></div>"); infoWin.css("width",width+"px"); infoWin.css("height",height+"px"); infoWin.css("position","absolute"); infoWin.css("top",(container.height()-height)/2+"px"); infoWin.css("left",(container.width()-width)/2+"px"); //标题 var infoWin_title=$("<div class='title'></div>"); var infoWin_title_close=$("<div class='close'></div>") infoWin_title_close.on("click",function(){ console.log("Close Modal!"); modal.hide(); }); var infoWin_title_content=$("<div class='title_content'></div>") infoWin_title_content.append(title); infoWin_title.append(infoWin_title_close); infoWin_title.append(infoWin_title_content); //内容 var infoWin_content=$("<div class='content'></div>"); infoWin_content.append(content); //信息框添加标题和内容 infoWin.append(infoWin_title); infoWin.append(infoWin_content); //模态层容器添加模态层和信息框 modal.append(modal_div); modal.append(infoWin); //将模态层添加到容器 container.append(modal); } })(jQuery);将之封装成一个jquery插件,提高可重用性,在页面短的调用方式如下:
<div class="container" id="container"> <a class="button" onclick="ShowModal()">弹出窗口</a> </div>
页面端涉及到的样式:
<style type="text/css"> .container{ width: 600px; height: 300px; position: relative; border: 1px solid #777777; } .button{ position: absolute; left: 15%; top: 15%; background: #eee; padding: 5px 10px ; } .button:hover{ background: #aaa; cursor: pointer; } </style>
调用modal插件:
<script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/javascript" src="jquery.modal.js"></script> <script type="text/javascript"> function ShowModal(){ $('#container').modalInfowindow({ width:300, height:150, title:"中国", content:"中国是中华人名共和国的简称" }); } </script>
其中,content可为html代码。
源码下载
相关文章推荐
- js+css实现模态层效果
- js+css实现模态层效果
- angular 实现modal windows效果(即模态窗口,半透明的遮罩层),以及bootstrap(css,components,js)的初步学习
- 用js实现的抽象CSS圆角效果!!
- Div+css+js实现高度适应浏览器,做出的效果像winform
- 用JS和CSS实现页面的向上向下滚动效果
- JS+CSS实现侧边栏跟随浏览器滚动效果
- 用JS+CSS实现多种图片漂亮效果的代码
- 用CSS+JS实现的进度条效果效果
- JS+CSS实现Google首页的动画效果
- JS+CSS实现的不规则TAB选项卡效果
- css、js两种方法实现遮罩效果
- chrome不兼容position:fixed 对联广告JS 不用JS做对联广告效果 CSS实现对联广告效果
- JS+CSS实现Dock menu(MacOS菜单导航效果)
- 转:jquery实现tab切换效果及js css ajax推荐
- Css利用js的expression实现的效果
- CSS学习笔记-附加篇( CSS+JS实现的选项卡效果(html组件))
- [导入]CSS+JS实现的幻灯片效果
- css+js实现select列表横向排列效果代码
- CSS+JS实现很不错的文本切换效果,可做公告栏