在做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. 近段时间学习html和CSS的一些细碎总结

    1.边框圆角属性:border-radius,取值能够是 百分比 / 自己定义长度,不能够取负值.假设是圆,将高度和宽度设置相等,而且将border-radius设置为100% 2.IE6,IE7,I ...

  2. CoDel Test Script

    This TCL script is retrieved from http://www.pollere.net/CoDel.html in November 2013 :) # Codel test ...

  3. C++指针数组和数组指针

    指针相关问题 using namespace std; int main(){ //a) 一个整型数( An integer) int a; //b) 一个指向整型数的指针( A pointer to ...

  4. Nginx的10万并发内核参数优化

    关于内核参数的优化: net.ipv4.tcp_max_tw_buckets = 6000timewait的数量,默认是180000.net.ipv4.ip_local_port_range = 10 ...

  5. Linux命令初步了解

    知识点: 1.虚拟控制台: 在系统启动时直接进入字符工作方式后,系统提供了多个(默认为6个)虚拟控制台.每个虚拟控制台可以相互独立使用,互不影响. 可以使用Alt+F1~Alt+F6进行多个虚拟控制台 ...

  6. javascript 倒计时跳转.

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. SignalR2.0开发实例之——私聊

    一.前言 继续上一章的补充,这章介绍使用私聊的功能.主要通过一个方法   Clients.Client(Context.ConnectionId).showMessage(msg); SignalR框 ...

  8. sprintf()详细介绍

    sprintf 编辑词条 编辑词条 -->   字串格式化命令,主要功能是把格式化的数据写入某个字符串中.sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内 ...

  9. java学习笔记 (1) —— Strut2.3.24环境搭建

    1.打开MyEclipse,添加WebProject,名称为testStruts2 2.配置Tomcat环境. 1) 在窗口——首选项——MyEclipse——Servers下找到Tomcat6.x ...

  10. linux 下 重启apache

    重启 apache #service httpd restart