遮罩层模态框插件实现思路(jQuery)

1.遮罩层使用JS写入,DOM渲染完毕后初始化插件;

2.为实现同一页面多次调用,每次呼出时为遮罩层分配一个ID,模态框内容采用动态写入的方式,关闭模态框时将遮罩层初始化;

3.模态框主要分为三种类型,类alert、类confirm、类prompt(按钮:确定/取消);

4.在此思路基础上可继续根据模态框内容继续分类,完全格式化模态框;

5.其他参数,例如窗体大小,是否可改变,点击遮罩层是否可以隐藏,是否可拖拽,触发事件,回调函数等。

基本思路有了,接下来就是着手实现了。

首先,声明一个构造函数:

var myMask = function (element, options) {
   
        this.caller = $(element);
        this.options = options;
        this.isShown = false;
        this.init();
}

这样就获得了一个拥有三个属性的myMask对象并将其初始化了。
首先为对象设置一些默认的选项:

myMask.Defaults = {
    dialog_type: 'alert',
    dialog_title: '提示信息',
    content_type: 'msg',
    dialog_content: '提交成功!',
    dialog_width: 600,
    Mask_click_close: true,
    is_draggable: false,
    show_Mask_Events: ['click'],
    close_Mask_Events: ['click'],
    selector: this.selector,
    before_show_callback: null, 
    shown_callback: null,
    after_close_callback: null
}

只有默认选项显然是不够用的,因此需要扩展它:

myMask.Options = $.extend(myMask.Defaults, this.options);

而在构造函数中用以初始化对象而调用的init方法是什么呢?还没有定义。因此,下一步就是要先为这个对象定义它的第一个方法:

myMask.prototype.init=function(){
    if (!$(".Mask").length) {
         $("body script").first().before('<div class="Mask"></div>');
         document.getElementsByClassName('Mask')[0].innerHTML += '<div class="dialog"></div>';
         this.dialog = document.getElementsByC
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jquery简单的弹出带遮罩插件本文由梦三秋于2011年01月07日 23:00作成 jquery代码 $("#test1").click(function(){ $('#login').skygqbox(); }); -------------------------------------------------------------------------------- jquery代码 $("#autoClose").click(function(){ var message = "不好意思呀!我来也匆匆去也匆匆,实在太忙了,有太多的东西要学习了,像JqueryJquery插件、Wordpress插件、PHP啦,都要学呀,哥没空老是在这杵着呢!两秒后闪人!别想念哥呀!"; $(message).skygqbox({autoClose:2000}); }); -------------------------------------------------------------------------------- jquery代码 $("#right_top").click(function(){ $('#login').skygqbox({position:"right_top"}); }); -------------------------------------------------------------------------------- jquery代码 $("#right_middle").click(function(){ $('#login').skygqbox({position:"right_middle"}); }); -------------------------------------------------------------------------------- jquery代码 $("#right_bottom").click(function(){ $('#login').skygqbox({position:"right_bottom"}); }); -------------------------------------------------------------------------------- jquery代码 $("#top_middle").click(function(){ $('#login').skygqbox({position:"top_middle"}); }); -------------------------------------------------------------------------------- jquery代码 $("#left_top").click(function(){ $('#login').skygqbox({position:"left_top"}); }); -------------------------------------------------------------------------------- jquery代码 $("#left_middle").click(function(){ $('#login').skygqbox({position:"left_middle"}); }); -------------------------------------------------------------------------------- jquery代码 $("#left_bottom").click(function(){ $('#login').skygqbox({position:"left_bottom"}); }); -------------------------------------------------------------------------------- jquery代码 $("#bottom_middle").click(function(){ $('#login').skygqbox({position:"bottom_middle"}); });

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值