基础版本
diff --git a/www/js/lib/aui-dialog.js b/www/js/lib/aui-dialog.js
new file mode 100644
index 0000000..90e85aa
--- /dev/null
+++ b/www/js/lib/aui-dialog.js
@@ -0,0 +1,125 @@
+/**
+ * aui-dialog.js
+ * @author 流浪男
+ * @todo more things to abstract, e.g. Loading css etc.
+ * Licensed under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+(function( window, undefined ) {
+ "use strict";
+ var auiDialog = function() {
+ };
+ var isShow = false;
+ auiDialog.prototype = {
+ params: {
+ title:'',
+ msg:'',
+ buttons: ['取消','确定'],
+ input:false
+ },
+ create: function(params,callback) {
+ var self = this;
+ var dialogHtml = '';
+ var buttonsHtml = '';
+ var headerHtml = params.title ? '<div class="aui-dialog-header">' + params.title + '</div>' : '<div class="aui-dialog-header">' + self.params.title + '</div>';
+ if(params.input){
+ params.text = params.text ? params.text: '';
+ var msgHtml = '<div class="aui-dialog-body"><input type="text" placeholder="'+params.text+'"></div>';
+ }else{
+ var msgHtml = params.msg ? '<div class="aui-dialog-body">' + params.msg + '</div>' : '<div class="aui-dialog-body">' + self.params.msg + '</div>';
+ }
+ var buttons = params.buttons ? params.buttons : self.params.buttons;
+ if (buttons && buttons.length > 0) {
+ for (var i = 0; i < buttons.length; i++) {
+ buttonsHtml += '<div class="aui-dialog-btn" tapmode button-index="'+i+'">'+buttons[i]+'</div>';
+ }
+ }
+ var footerHtml = '<div class="aui-dialog-footer">'+buttonsHtml+'</div>';
+ dialogHtml = '<div class="aui-dialog">'+headerHtml+msgHtml+footerHtml+'</div>';
+ document.body.insertAdjacentHTML('beforeend', dialogHtml);
+ // listen buttons click
+ var dialogButtons = document.querySelectorAll(".aui-dialog-btn");
+ if(dialogButtons && dialogButtons.length > 0){
+ for(var ii = 0; ii < dialogButtons.length; ii++){
+ dialogButtons[ii].onclick = function(){
+ if(callback){
+ if(params.input){
+ callback({
+ buttonIndex: parseInt(this.getAttribute("button-index"))+1,
+ text: document.querySelector("input").value
+ });
+ }else{
+ callback({
+ buttonIndex: parseInt(this.getAttribute("button-index"))+1
+ });
+ }
+ };
+ self.close();
+ return;
+ }
+ }
+ }
+ self.open();
+ },
+ open: function(){
+ if(!document.querySelector(".aui-dialog"))return;
+ var self = this;
+ document.querySelector(".aui-dialog").style.marginTop = "-"+Math.round(document.querySelector(".aui-dialog").offsetHeight/2)+"px";
+ if(!document.querySelector(".aui-mask")){
+ var maskHtml = '<div class="aui-mask"></div>';
+ document.body.insertAdjacentHTML('beforeend', maskHtml);
+ }
+ // document.querySelector(".aui-dialog").style.display = "block";
+ setTimeout(function(){
+ document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
+ document.querySelector(".aui-mask").classList.add("aui-mask-in");
+ document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
+ }, 10)
+ document.querySelector(".aui-mask").addEventListener("touchmove", function(e){
+ e.preventDefault();
+ })
+ document.querySelector(".aui-dialog").addEventListener("touchmove", function(e){
+ e.preventDefault();
+ })
+ return;
+ },
+ close: function(){
+ var self = this;
+ document.querySelector(".aui-mask").classList.remove("aui-mask-in");
+ document.querySelector(".aui-dialog").classList.remove("aui-dialog-in");
+ document.querySelector(".aui-dialog").classList.add("aui-dialog-out");
+ if (document.querySelector(".aui-dialog:not(.aui-dialog-out)")) {
+ setTimeout(function(){
+ if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
+ self.open();
+ return true;
+ },200)
+ }else{
+ document.querySelector(".aui-mask").classList.add("aui-mask-out");
+ document.querySelector(".aui-dialog").addEventListener("webkitTransitionEnd", function(){
+ self.remove();
+ })
+ document.querySelector(".aui-dialog").addEventListener("transitionend", function(){
+ self.remove();
+ })
+ }
+ },
+ remove: function(){
+ if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
+ if(document.querySelector(".aui-mask")){
+ document.querySelector(".aui-mask").classList.remove("aui-mask-out");
+ }
+ return true;
+ },
+ alert: function(params,callback){
+ var self = this;
+ return self.create(params,callback);
+ },
+ prompt:function(params,callback){
+ var self = this;
+ params.input = true;
+ return self.create(params,callback);
+ }
+ };
+ window.auiDialog = auiDialog;
+})(window);
\ No newline at end of file