| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | /** * aui-popup.js * @author 流浪男 * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php */(function( window, undefined ) {    "use strict";    var auiPopup = function() {    };    var isShow = false;    auiPopup.prototype = {        init: function(params,callback){            this.frameBounces = params.frameBounces;            this.location = params.location;            this.buttons = params.buttons;            this.maskDiv;            this.popupDiv;            var self = this;            self.open(params,callback);        },        open: function(params,callback) {            var buttonsHtml='',locationClass = 'aui-popup-top';        	var self = this;            if(self.popupDiv){                self.close();                return;            }            if(!self.maskDiv){                self.maskDiv = document.createElement("div");                self.maskDiv.className = "aui-mask";                document.body.appendChild(self.maskDiv);            }            switch (self.location) {                case "top":                    locationClass = 'aui-popup-top';                    break;                case "top-left":                    locationClass = 'aui-popup-top-left';                    break;                case "top-right":                    locationClass = 'aui-popup-top-right';                    break;                case "bottom":                    locationClass = 'aui-popup-bottom';                    break;                case "bottom-left":                    locationClass = 'aui-popup-bottom-left';                    break;                case "bottom-right":                    locationClass = 'aui-popup-bottom-right';                    break;                default:                    locationClass = 'aui-popup-top';                    break;            }            self.popupDiv = document.createElement("div");            self.popupDiv.className = "aui-popup "+locationClass;            self.popupDiv.innerHTML = '<div class="aui-popup-arrow"></div><div class="aui-popup-content"></div>';            document.body.appendChild(self.popupDiv);            if(self.buttons && self.buttons.length){                buttonsHtml += '<ul class="aui-list aui-list-noborder">';                for(var i = 0; i < self.buttons.length;i++){                    buttonsHtml += '<li class="aui-list-item aui-list-item-middle">';                    buttonsHtml += '<div class="aui-list-item-label-icon"><img src="'+self.buttons[i].image+'"></div>';                    buttonsHtml += '<div class="aui-list-item-inner">'+self.buttons[i].text+'</div>';                    buttonsHtml += '</li>';                }                buttonsHtml += '</ul>';            }            document.querySelector(".aui-popup .aui-popup-content").insertAdjacentHTML('beforeend', buttonsHtml);            var actionsheetHeight = document.querySelector(".aui-popup").offsetHeight;            self.maskDiv.classList.add("aui-mask-in");            self.popupDiv.classList.add("aui-popup-in");            self.popupDiv.addEventListener("touchmove", function(event){                event.preventDefault();            })            self.maskDiv.addEventListener("touchmove", function(event){                event.preventDefault();            })            if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){                api.setFrameAttr({                    bounces:false                });            }            var popupButtons = document.querySelectorAll(".aui-popup .aui-list-item");            if(popupButtons && popupButtons.length > 0){                setTimeout(function(){                    self.maskDiv.onclick = function(){self.close();return;};                    for(var ii = 0; ii < popupButtons.length; ii++){                        (function(e){                            popupButtons[e].onclick = function(){                                if(self.buttons[e].value){                                    var _value = self.buttons[e].value;                                }else{                                    var _value = null;                                }                                if(callback){                                    callback({                                        buttonIndex: e+1,                                        buttonTitle: this.textContent,                                        buttonValue: _value                                    });                                };                                self.close();                                return;                            }                        })(ii)                    }                }, 350)            }        },        close: function(){            var self = this;            if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){                api.setFrameAttr({                    bounces:true                });            }            if(self.popupDiv){                var actionsheetHeight = self.popupDiv.offsetHeight;                self.popupDiv.classList.add("aui-popup-out");                self.maskDiv.style.opacity = 0;                setTimeout(function(){                    if(self.maskDiv){                        self.maskDiv.parentNode.removeChild(self.maskDiv);                    }                    self.popupDiv.parentNode.removeChild(self.popupDiv);                    self.maskDiv = self.popupDiv = false;                }, 300)            }        }    };	window.auiPopup = auiPopup;})(window);
 |