jqDialog.js
3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
const Dialog = (function(win,doc){
window.addEventListener('load',function(){document.body.addEventListener('touchstart',function(){},false); },false);
class DialogFn{
constructor(obj) {
this.timer = null;
this.set = {};
}
extend (n,n1){
for(let i in n1){n[i] = n1[i]};
}
init(a,b,c){
if(b && typeof b === 'object') this.extend(this.set,b);
let _dialog = document.createElement('div'),
item = document.createElement('div'),
t = this,set = t.set;
_dialog.classList.add('c_alert_dialog');
if(set.index) _dialog.dataset.index = set.index
item.classList.add('c_alert_wrap');
item.innerHTML = `<div class="c_alert_con" style="${set.style}">${a}</div>`;
set.addClass && item.classList.add(set.addClass)
if(set.title) {
item.classList.add('c_alert_width');
let tempTitle = `${b.title}`;
if(tempTitle.indexOf('<div') == -1)
item.insertAdjacentHTML("afterbegin", `<div class="c_alert_title">${b.title}</div>`);
else
item.insertAdjacentHTML("afterbegin", tempTitle);
}
if(set.button) {
item.classList.add('c_alert_width');
let _btn = ''
for(let i in set.button){
_btn+=`<a href="javascript:;" data-name="${i}">${i}</a>`
};
item.insertAdjacentHTML("beforeend", `<div class="c_alert_btn">${_btn}</div>`);
let btnArr = item.querySelectorAll('.c_alert_btn a');
;[].forEach.call(btnArr,o =>{
//o.style.width = 100 / btnArr.length + '%'
o.onclick = function(e){
e.preventDefault();
set.button[o.dataset.name].call(item,t);
}
})
};
if(set.time)
t.timer = setTimeout(()=>{_D_obj.close(item,set.after)},set.time+300)
if(b && typeof b !== 'object')
t.timer = setTimeout(()=>{_D_obj.close(item,set.after)},b+300)
set.before && set.before.call(item);
if(set.mask===undefined || set.mask){
_dialog.insertAdjacentHTML("beforeend","<div class='c_alert_mask' ontouchmove='return false'></div>");
};
_dialog.appendChild(item);
document.body.appendChild(_dialog)
if(set.mask=== undefined || set.mask){
_dialog.querySelector('.c_alert_mask').onclick =(e)=>{
//e.preventDefault();
//if(set.maskClick || set.maskClick===undefined) _D_obj.close(item,set.after) ;
};
};
set.onload && set.onload.call(item)
setTimeout(()=>{_dialog.classList.add('dialog_open')},50)
}
};
window._D_obj = {
init : function(a,b,c){
new DialogFn().init(a,b,c);
},
close : function(index,fn) {
let _dialog = document.querySelectorAll('.c_alert_dialog');
;[].forEach.call(_dialog,o =>{
if(o.dataset.index == index || o === index.parentNode){
o.classList.remove('dialog_open')
o.classList.add('dialog_close');
fn && fn.call(o.querySelector('.c_alert_wrap'),index)
o.querySelector('.c_alert_wrap').addEventListener('animationend', function(){
o.remove();
});
}
})
}
};
return _D_obj;
})(window,document);