基于jQuery的弹出消息插件 DivAlert之旅(一)


Posted in Javascript onApril 01, 2010

想着自己学习Javascript,以及Ajax、jQuery等已经有一段时间了,不过貌似还没有写过一个插件,看到jQuery官网上那么多令人眼前一亮的插件,自己今天也动心说是不是能够写一个类似的插件来瞧瞧,了解了jQuery插件的基本格式,理一下基本的思路,动工吧。。。

这个DivAlert插件,顾名思义就是页面弹出框,也就相当于Winform里面MessageBox.Show()那样的东西。

首先,我们来定义一下一些最基本的参数:
插件初始化

(function($) { 
$.jDivAlert = function(o) { 
//设置插件基本信息 
var options = o || {}; 
options.width = o.width || 300; 
options.height = o.height || 200; 
options.title = o.title || "提示标题"; 
options.content = o.content || "提示内容";

随后定义一个创建页面元素的方法,这样可以重用,简写js:

function createElement(obj) { 
return $(document.createElement(obj)); 
}

创建背景div及设定样式

var $bgDiv = createElement('div') 
.css({ 'position': 'absolute', 'top': '0', 'left': '0', 'z-index': '9999', 'filter': 'alpha(opacity=70)', 'backgroundColor': '#999', 'opacity': '0.7', 'width': document.documentElement.clientWidth + "px", 'height': document.documentElement.clientHeight + "px" }) 
.appendTo('body');

创建提示div
var $outDiv = createElement('div') 
.css({ 'position': 'absolute', 'top': ($(window).height() - options.height) / 2 + $(window).scrollTop() + 'px', 'left': ($(window).width() - options.width) / 2 + $(window).scrollLeft() + 'px', 'border': '1px solid #cef', 'zIndex': '10000', 'width': options.width + 'px', 'height': options.height + 'px', 'overflow': 'hidden' }) 
.appendTo('body');

创建提示div的标题部分
var $titDiv = createElement("div") 
.css({ 'textAlign': 'left', 'backgroundColor': '#54A1D9', 'padding': '8px', 'cursor': 'move', 'height': '20px', 'vertical-align': 'middle' }) 
.html(options.title) 
.appendTo($outDiv);

创建提示div的内容部分
var $conDiv = createElement("div") 
.css({ 'backgroundColor': '#fff', 'textAlign': 'center', 'padding': '12px', 'height': options.height - $titDiv.outerHeight() }) 
.html(options.content) 
.appendTo($outDiv);

创建关闭按钮
var $clsBtn = createElement("img") 
.attr('src', 'del.gif') 
.css({ 'cursor': 'pointer', 'float': 'right' }) 
.click(close) 
.appendTo($titDiv);

创建弹出框关闭事件:

function close() { 
$bgDiv.fadeOut(); 
$outDiv.fadeOut(); 
} 
} 
})(jQuery);

要看到使用效果,在页面script部分加入如下代码即可(当然jQuery库文件不可少啊,现在最新版是1.4.2,可以去官网http://www.jQuery.com下载):

$(document).ready(function() { 
$.jDivAlert({ 
width: 300, 
height: 300 
}); 
});

貌似还有很多功能有待完善,哎。。继续努力。。。
打包下载地址

基于jQuery的弹出消息插件 DivAlert之旅(一)

基于jQuery的消息提示插件 DivAlert之旅(二)

基于jQuery的消息提示插件 DivAlert之旅(三) 推荐

Javascript 相关文章推荐
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
js实现的复制兼容chrome和IE
Apr 03 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
Apr 01 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
jQuery插件ajaxFileUpload使用详解
Jan 10 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
微信小程序页面上下滚动效果
Nov 18 Javascript
Vue实现购物车详情页面的方法
Aug 20 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
在antd Form表单中select设置初始值操作
Nov 02 Javascript
基于jquery的tab切换 js原理
Apr 01 #Javascript
JQuery 选项卡效果(JS与HTML的分离)
Apr 01 #Javascript
JQuery Tab选项卡效果代码改进版
Apr 01 #Javascript
JQuery autocomplete 使用手册
Apr 01 #Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
Apr 01 #Javascript
js 实现打印网页中定义的部分内容的代码
Apr 01 #Javascript
js prototype截取字符串函数
Apr 01 #Javascript
You might like
PHP 类相关函数的使用详解
2013/05/10 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
员工考勤管理制度
2015/08/06 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android