使用jquery制作弹出框效果


Posted in Javascript onApril 03, 2015

非常不错的国产JS弹出框插件,由前端工程师alien开发,提供多种类型的自定义对话框,使用方法简单,浏览器兼容性好,支持的弹出框模式有:

alert:普通提示(警告)对话框
confirm:询问(确认)对话框
message:简单消息对话框(无title、无按钮)
iframe:在对话框中嵌入一个iframe
tip:带有小三角指向的小tip
dialog:最基础的自定义对话框

var jDialogId = [];
(function ($) {
  $.jDialog = function (options) {
 
    var id = parseInt(Math.floor(Math.random() * 1000 + 1));
    while ($.inArray(id, jDialogId) != -1) {
      id = parseInt(Math.floor(Math.random() * 1000 + 1));
    }
    jDialogId.push(id);
 
    var defaults = {
      title:"",
      content: "这是一个JasUI-Dialog插件",
      width: 350,
      height: 0,
      timer: 0,
      showbuttons:false,
      buttons: [],
      okval: "确认",
      ok: function () { return false;},
      cancelval: "取消",
      cancel: function () { return false; },
      showclose:true,
      close: function () { },
      theme:""
    };
    var options = $.extend(defaults, options);
    var _objdiv = "<div id='j-dialog-" + id + "' class='j-dialog ";
    if (options.theme != "") {
      _objdiv = _objdiv + "j-dialog-" + options.theme + "'>";
    } else {
      _objdiv = _objdiv + "'>";
    }
    _objdiv = _objdiv + "<div class='j-dialog-header'>";
    if (options.showclose) {
      _objdiv = _objdiv + "<a href='javascript:void(0)' class='j-close j-dialog-close'></a>"
    } 
    if (options.title != "") {
      _objdiv = _objdiv + "<h5 class='j-dialog-title'>" + options.title + "</h5>";
    }
    _objdiv = _objdiv + "</div>";
    _objdiv = _objdiv + "<p class='j-dialog-content'>" + options.content + "</p>";
     
    if (options.showbuttons) {
      _objdiv = _objdiv + "<div class='j-dialog-footer'>";
      $.each(options.buttons,function(i,value) { 
        _objdiv = _objdiv + "<a class='j-button' data-id='" + i + "'>" + value.title + "</a>";
      })
      _objdiv = _objdiv + "<a class='j-button j-button-primary j-dialog-ok'>" + options.okval + "</a>";
      _objdiv = _objdiv + "<a class='j-button j-dialog-cancel'>" + options.cancelval + "</a>";
      _objdiv = _objdiv + "</div>";
    };
     
    _objdiv=_objdiv+"</div>";
    $("body").append(_objdiv);
    var _obj = $('#j-dialog-' + id)
    if (options.height>0) {
      _obj.css("height", options.height);
    }
    _obj.css("width", options.width);
    _obj.css("margin-top", '-' + (options.height / 2) + 'px');
    _obj.css("margin-left", '-' + (options.width / 2) + 'px');
    _obj.animate({ top: '30%',opacity:1 }, 0);
    if (options.showclose) {
      _obj.find('.j-dialog-close').on('click', function () {
        $.jDialogRemove(id, options.close);
      })
      _obj.find('.j-dialog-ok').on('click', function () {
        if (!options.ok()) {
          $.jDialogRemove(id, options.close);
        }
      })
      _obj.find('.j-dialog-cancel').on('click', function () {
        if (!options.cancel()) {
          $.jDialogRemove(id, options.close);
        }
      })
    }
    if (options.showbuttons) {
      $.each(options.buttons, function (i, value) {
        _obj.find("[data-id=" + i + "]").on('click', function () {
          if (!value.callback()) {
            $.jDialogRemove(id, options.close);
          }
        })
      })
    };
    if (options.timer> 0) {
      setTimeout(function () {
        $.jDialogRemove(id,options.close);
      }, options.timer);
    }
    return id;
  },
  $.jDialogRemove = function (id, callback) {
    if ($.inArray(id, jDialogId)!=-1) {
      jDialogId.splice($.inArray(id, jDialogId), 1);
      $('#j-dialog-' + id).animate({ top: '0', opacity: 0 }, 500, function () {
        $('#j-dialog-' + id).remove();
        if (callback) {
          callback();
        }
      });
    }
  },
  $.jTip = function (options) {
    var defaults = {
      content: "这是一个JasUI-Dialog插件",
      width: 200,
      timer: 0,
      showclose: false,
      close: function () { },
      theme: ""
    };
    var options = $.extend(defaults, options);
    $.jDialog(options);
  },
  $.jFloatText = function (txt,color,posX,posY) {
    var $i = $("<b>").text(txt);
    var x = '50%', y = '40%';
    var _color = '#E94F06';
    if (color) {
      _color= color;
    }
    if (posX) {
      x = posX;
    }
    if (posY) {
      y = posY;
    }
    $i.css({ top: 200, left: x, position: "absolute", color: "#E94F06" });
    $("body").append($i);
    $i.animate({ top: 20, opacity: 0}, 1500, function () {
      $i.remove();
    });
  }
 
})(jQuery);

以上所述就是本文的全部内容了,希望能够对大家熟练使用jQuery有所帮助。

Javascript 相关文章推荐
仿迅雷焦点广告效果(JQuery版)
Nov 19 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
js中this用法实例详解
May 05 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
使用Vue-Router 2实现路由功能实例详解
Nov 14 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
Jan 15 Javascript
javascript实现拼图游戏
Jan 29 Javascript
javascript 实现map集合
Apr 03 #Javascript
jQuery制作简洁的图片轮播效果
Apr 03 #Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 #Javascript
jQuery实现左右切换焦点图
Apr 03 #Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 #Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 #Javascript
JavaScript替换当前页面的方法
Apr 03 #Javascript
You might like
咖啡知识大全
2021/03/03 新手入门
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
php图片裁剪函数
2018/10/31 PHP
如何在PHP中使用数组
2020/06/09 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
window.location.hash知识汇总
2015/11/09 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
webpack之devtool详解
2018/02/10 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Django 登陆验证码和中间件的实现
2018/08/17 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
质检的岗位职责
2013/11/17 职场文书
注塑工厂厂长岗位职责
2013/12/02 职场文书
律师授权委托书范本
2014/10/07 职场文书
经验交流材料格式
2014/12/30 职场文书
同意报考公务员证明
2015/06/17 职场文书