modal.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const jQuery = require('jquery');
  2. (function ($) {
  3. let close = require("../images/icon_close_default.png")
  4. let loadingImg = require("../images/loading.gif")
  5. $.alerModal = function (options) {
  6. var dft = {
  7. sureBtn:true,
  8. quiteBtn:false,
  9. width:"400",
  10. title:"标题",
  11. sureText:"确定",
  12. message: '<p class="tip">内容</p>',
  13. time: 1500,
  14. isFather: false,
  15. fatherWrapper:'',
  16. type:'modal',//tip,loading
  17. callback:function(){
  18. alert(99)
  19. }
  20. };
  21. var ops = $.extend(dft, options || {});
  22. var html = `
  23. <div class="alertModal">
  24. <div class="modalBg"></div>
  25. <div class="modalMain" style="width:${ops.width}px;margin-left:-${ops.width/2}px">
  26. <p class="title">${ops.title} <img src="${close}" alt=""></p>
  27. <div class="content">
  28. ${ops.message}
  29. </div>
  30. <div class="btns clearfix">
  31. <span class="quite" style="display:${ops.quiteBtn?'inlineBlock':'none'}">取消</span>
  32. <span class="sure sureChange" style="display:${ops.sureBtn?'inlineBlock':'none'}">${ops.sureText}</span>
  33. </div>
  34. </div>
  35. </div>
  36. `
  37. var tip = `
  38. <div class="modaltip">${ops.message}</div>
  39. `
  40. var loading = `
  41. <div class="loading"><img src="${loadingImg}" alt=""></div>
  42. `
  43. var box = $("<div/>",{
  44. "class":"divModal",
  45. "html":ops.type == 'tip'?tip:ops.type == 'loading'?loading:html
  46. }).css({
  47. left:$(".modaltip").width()/2+'px',
  48. top:$(".modaltip").height()/2+'px'
  49. })
  50. if(ops.isFather){
  51. ops.fatherWrapper.append(box)
  52. } else{
  53. console.log('bbbbbbb')
  54. $("body").append(box)
  55. }
  56. if(ops.type == 'tip'){
  57. setTimeout(function(){
  58. box.remove();
  59. }, ops.time);
  60. }
  61. $(document).on('click',".alertModal .title img",function(){
  62. box.remove();
  63. })
  64. }
  65. })(jQuery);