基础版本
diff --git a/www/js/lib/aui-actionsheet.js b/www/js/lib/aui-actionsheet.js
new file mode 100644
index 0000000..82b97a1
--- /dev/null
+++ b/www/js/lib/aui-actionsheet.js
@@ -0,0 +1,118 @@
+/**
+ * aui-actionsheet.js
+ * @author 流浪男
+ * Licensed under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+(function( window, undefined ) {
+ "use strict";
+ var auiActionsheet = function() {
+ };
+ var isShow = false;
+ auiActionsheet.prototype = {
+ init: function(params,callback){
+ this.frameBounces = params.frameBounces;
+ this.title = params.title;
+ this.buttons = params.buttons;
+ this.cancelTitle = params.cancelTitle;
+ this.destructiveTitle = params.destructiveTitle;
+ this.maskDiv;
+ this.actionsheetDiv;
+ var self = this;
+ self.open(params,callback);
+ },
+ open: function(params,callback) {
+ var titleHtml='',buttonsHtml='',destructiveHtml='',cancelHtml='',btnHtml='';
+ var self = this;
+ if(self.actionsheetDiv || (!self.title && !self.buttons && !self.cancelTitle && !self.destructiveTitle))return;
+ if(!self.maskDiv){
+ self.maskDiv = document.createElement("div");
+ self.maskDiv.className = "aui-mask";
+ document.body.appendChild(self.maskDiv);
+ }
+ self.actionsheetDiv = document.createElement("div");
+ self.actionsheetDiv.className = "aui-actionsheet";
+ document.body.appendChild(self.actionsheetDiv);
+ if(self.title){
+ titleHtml = '<div class="aui-actionsheet-title aui-border-b aui-font-size-12">'+self.title+'</div>';
+ }
+ if(self.buttons && self.buttons.length){
+ for(var i = 0; i < self.buttons.length;i++){
+ if(i == self.buttons.length-1){
+ buttonsHtml += '<div class="aui-actionsheet-btn-item">'+self.buttons[i]+'</div>';
+ }else{
+ buttonsHtml += '<div class="aui-actionsheet-btn-item aui-border-b">'+self.buttons[i]+'</div>';
+ }
+ }
+ }
+ if(self.destructiveTitle){
+ destructiveHtml = '<div class="aui-actionsheet-btn-item aui-border-t aui-text-danger">'+self.destructiveTitle+'</div>';
+ }else{
+ var destructiveHtml = '';
+ }
+ if(self.title || (self.buttons && self.buttons.length)){
+ btnHtml = '<div class="aui-actionsheet-btn">'+titleHtml+''+buttonsHtml+''+destructiveHtml+'</div>';
+ }
+ if(self.cancelTitle){
+ cancelHtml = '<div class="aui-actionsheet-btn"><div class="aui-actionsheet-btn-item">'+self.cancelTitle+'</div></div>';
+ }
+ self.actionsheetDiv.insertAdjacentHTML('beforeend', btnHtml+cancelHtml);
+ var actionsheetHeight = document.querySelector(".aui-actionsheet").offsetHeight;
+ self.maskDiv.classList.add("aui-mask-in");
+ self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,0,0)";
+ self.actionsheetDiv.style.opacity = 1;
+ self.actionsheetDiv.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 actionsheetButtons = document.querySelectorAll(".aui-actionsheet-btn-item");
+ if(actionsheetButtons && actionsheetButtons.length > 0){
+ setTimeout(function(){
+ self.maskDiv.onclick = function(){self.close();return;};
+ for(var ii = 0; ii < actionsheetButtons.length; ii++){
+ (function(e){
+ actionsheetButtons[e].onclick = function(){
+ if(callback){
+ callback({
+ buttonIndex: e+1,
+ buttonTitle: this.textContent
+ });
+ };
+ 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.actionsheetDiv){
+ var actionsheetHeight = self.actionsheetDiv.offsetHeight;
+ self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,"+actionsheetHeight+"px,0)";
+ self.maskDiv.style.opacity = 0;
+ setTimeout(function(){
+ if(self.maskDiv){
+ self.maskDiv.parentNode.removeChild(self.maskDiv);
+ }
+ self.actionsheetDiv.parentNode.removeChild(self.actionsheetDiv);
+ self.actionsheetDiv = self.maskDiv = false;
+ }, 300)
+ }
+ }
+ };
+ window.auiActionsheet = auiActionsheet;
+})(window);
\ No newline at end of file