首页 > 语言 > JavaScript > 正文

使用jquery制作弹出框效果

2024-05-06 16:18:23
字体:
来源:转载
供稿:网友

本文主要是使用jDialog插件实现的弹出框效果,代码十分简介,需要的小伙伴自己参考下吧。

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

alert:普通提示(警告)对话框

confirm:询问(确认)对话框

message:简单消息对话框(无title、无按钮)

iframe:在对话框中嵌入一个iframe

tip:带有小三角指向的小tip

dialog:最基础的自定义对话框

 

 
  1. var jDialogId = []; 
  2. (function ($) { 
  3. $.jDialog = function (options) { 
  4.  
  5. var id = parseInt(Math.floor(Math.random() * 1000 + 1)); 
  6. while ($.inArray(id, jDialogId) != -1) { 
  7. id = parseInt(Math.floor(Math.random() * 1000 + 1)); 
  8. jDialogId.push(id); 
  9.  
  10. var defaults = { 
  11. title:""
  12. content: "这是一个JasUI-Dialog插件"
  13. width: 350, 
  14. height: 0, 
  15. timer: 0, 
  16. showbuttons:false
  17. buttons: [], 
  18. okval: "确认"
  19. ok: function () { return false;}, 
  20. cancelval: "取消"
  21. cancel: function () { return false; }, 
  22. showclose:true
  23. close: function () { }, 
  24. theme:"" 
  25. }; 
  26. var options = $.extend(defaults, options); 
  27. var _objdiv = "<div id='j-dialog-" + id + "' class='j-dialog "
  28. if (options.theme != "") { 
  29. _objdiv = _objdiv + "j-dialog-" + options.theme + "'>"
  30. else { 
  31. _objdiv = _objdiv + "'>"
  32. _objdiv = _objdiv + "<div class='j-dialog-header'>"
  33. if (options.showclose) { 
  34. _objdiv = _objdiv + "<a href='javascript:void(0)' class='j-close j-dialog-close'></a>" 
  35. }  
  36. if (options.title != "") { 
  37. _objdiv = _objdiv + "<h5 class='j-dialog-title'>" + options.title + "</h5>"
  38. _objdiv = _objdiv + "</div>"
  39. _objdiv = _objdiv + "<p class='j-dialog-content'>" + options.content + "</p>"
  40.  
  41. if (options.showbuttons) { 
  42. _objdiv = _objdiv + "<div class='j-dialog-footer'>"
  43. $.each(options.buttons,function(i,value) {  
  44. _objdiv = _objdiv + "<a class='j-button' data-id='" + i + "'>" + value.title + "</a>"
  45. }) 
  46. _objdiv = _objdiv + "<a class='j-button j-button-primary j-dialog-ok'>" + options.okval + "</a>"
  47. _objdiv = _objdiv + "<a class='j-button j-dialog-cancel'>" + options.cancelval + "</a>"
  48. _objdiv = _objdiv + "</div>"
  49. }; 
  50.  
  51. _objdiv=_objdiv+"</div>"
  52. $("body").append(_objdiv); 
  53. var _obj = $('#j-dialog-' + id) 
  54. if (options.height>0) { 
  55. _obj.css("height", options.height); 
  56. _obj.css("width", options.width); 
  57. _obj.css("margin-top"'-' + (options.height / 2) + 'px'); 
  58. _obj.css("margin-left"'-' + (options.width / 2) + 'px'); 
  59. _obj.animate({ top: '30%',opacity:1 }, 0); 
  60. if (options.showclose) { 
  61. _obj.find('.j-dialog-close').on('click'function () { 
  62. $.jDialogRemove(id, options.close); 
  63. }) 
  64. _obj.find('.j-dialog-ok').on('click'function () { 
  65. if (!options.ok()) { 
  66. $.jDialogRemove(id, options.close); 
  67. }) 
  68. _obj.find('.j-dialog-cancel').on('click'function () { 
  69. if (!options.cancel()) { 
  70. $.jDialogRemove(id, options.close); 
  71. }) 
  72. if (options.showbuttons) { 
  73. $.each(options.buttons, function (i, value) { 
  74. _obj.find("[data-id=" + i + "]").on('click'function () { 
  75. if (!value.callback()) { 
  76. $.jDialogRemove(id, options.close); 
  77. }) 
  78. }) 
  79. }; 
  80. if (options.timer> 0) { 
  81. setTimeout(function () { 
  82. $.jDialogRemove(id,options.close); 
  83. }, options.timer); 
  84. return id; 
  85. }, 
  86. $.jDialogRemove = function (id, callback) { 
  87. if ($.inArray(id, jDialogId)!=-1) { 
  88. jDialogId.splice($.inArray(id, jDialogId), 1); 
  89. $('#j-dialog-' + id).animate({ top: '0', opacity: 0 }, 500, function () { 
  90. $('#j-dialog-' + id).remove(); 
  91. if (callback) { 
  92. callback(); 
  93. }); 
  94. }, 
  95. $.jTip = function (options) { 
  96. var defaults = { 
  97. content: "这是一个JasUI-Dialog插件"
  98. width: 200, 
  99. timer: 0, 
  100. showclose: false
  101. close: function () { }, 
  102. theme: "" 
  103. }; 
  104. var options = $.extend(defaults, options); 
  105. $.jDialog(options); 
  106. }, 
  107. $.jFloatText = function (txt,color,posX,posY) { 
  108. var $i = $("<b>").text(txt); 
  109. var x = '50%', y = '40%'
  110. var _color = '#E94F06'
  111. if (color) { 
  112. _color= color; 
  113. if (posX) { 
  114. x = posX; 
  115. if (posY) { 
  116. y = posY; 
  117. $i.css({ top: 200, left: x, position: "absolute", color: "#E94F06" }); 
  118. $("body").append($i); 
  119. $i.animate({ top: 20, opacity: 0}, 1500, function () { 
  120. $i.remove(); 
  121. }); 
  122.  
  123. })(jQuery); 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选