在做web前端的时候,有些时候会涉及到模态层,在此提供一种实现思路。希望对大家实用。先贴效果吧:

模态层效果

以下说说在写模态层的时候的思路:通过可配置的參数width,height,title以及content用来设定弹出的信息框显示的内容,并通过可配置參数container用来设定模态层显示的区域。

思路非常easy,主要是一些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实现模态层效果的更多相关文章

  1. 使用bootstrap的JS插件实现模态框效果

    在上一篇文章中,我们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,我们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提高效率.一个好的轮子,不仅 ...

  2. 实用js+css多级树形展开效果导航菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. js+css实现带缓冲效果右键弹出菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. js 实现弹出层效果

    代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...

  5. JS /CSS 实现模态框(注册和登录组件)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. JS实现弹出层效果

    很多时候我们想去某某网站干点什么的时候,就会让我们先注册登录后才可以访问内容,而现在很多网站注册登录的时候都会有一种遮罩层的效果,就是背景是带有透明度的黑色遮罩,盖满整个网站,然后登录框弹出固定在屏幕 ...

  7. (JS+CSS)实现图片放大效果

    代码很简单,在这里就不过多阐述,先上示例图: 实现过程: html部分代码很简单 <div id="outer"> <p>点击图片</p> &l ...

  8. 纯js+css实现loading等待效果

    此插件是基于jqueryUI的widget,下面是具体实现代码 第一部分css: /***loading***/ .loading-box{ position:absolute; text-align ...

  9. js+html实现遮罩层效果(收藏哦)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script ty ...

随机推荐

  1. iOS开发之多媒体API

    播放视频 视频文件介绍 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类.尽管后者在播放的稳定性和播放画面质量上可能没有前者 优秀,但网络流媒体影像视频的广泛传播 ...

  2. 自定义控件(视图)2期笔记03:自定义控件之使用系统控件(优酷案例之广告条Viewpager)

    1.首先我们看看运行效果,如下: 2. 下面就是详细实现这个效果的过程: (1)新建一个Android工程,命名为"广告条的效果",如下: (2)这里用到一个控件ViewPager ...

  3. Linux系统调用system_call

    2016-03-25 张超的<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 我的虚拟环境和代码在http ...

  4. VMware Virtual Machine安装报错解决1

    安装完VMware virtual machine 后,再进行 "create a new virtual machine"最后点击"Finish"时,报如下错 ...

  5. Menu( 菜单)

    一. 加载方式菜单组件通常用于快捷菜单,在加载方式上,通过 class 或 JS 进行设置为菜单组件.然后,再通过 JS 事件部分再响应.//class 加载方式<div id="bo ...

  6. DropDownList获取的SelectIndex一直为0

    1.想要DropDownList自动提交必须设置AutoPostBack="true"属性,下面是代码: <asp:DropDownList ID=" AutoPo ...

  7. 从Ueditor跨域上传,总结的一次跨域上传的爬坑经历

    项目内其中一个管理后台需要发布文章,需要一个富文本编辑器,经过一番选择后,最终选择了百度的Ueditor. 由于上传的文件是上传到另一台专门存放图片等静态资源的服务器上面的,所以就涉及到了跨域上传. ...

  8. js 日期控件 可以显示为和历

    日期控件的js <!-- /** * Calendar * @param beginYear 1990 * @param endYear 2010 * @param language 0(zh_ ...

  9. Python学习笔记总结(三)类

    一.类简单介绍 1.介绍 类是Python面向对象程序设计(OOP)的主要工具,类建立使用class语句,通过class定义的对象. 类和模块的差异,类是语句,模块是文件. 类和实例 实例:代表程序领 ...

  10. iOS开发之常用第三方框架(下载地址,使用方法,总结)

    iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...