123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- (function() {
- FZ.UIMenu = FZ.newClass( {
- MENU_SHOW : 0,
- MENU_HIDE : 1,
- m_div : null,
- m_back_div : null,
- m_btn_list : null,
- m_back_w : 0,
- m_back_h : 0,
- m_observer : null,
- m_state : 0,
- m_show_x : 0,
- m_show_y : 0,
- m_hide_x : 0,
- m_hide_y : 0,
- m_btn_enable : null,
- init : function() {
- this.m_div = document.createElement("div");
- this.m_div.style.position = "absolute";
- this.m_div.style.webkitTransition = "translate";
- this.m_btn_list = [];
- this.m_back_div = document.createElement("div");
-
- this.setState(this.MENU_SHOW, 0);
- },
- setBackImage : function(url, w, h) {
- var ctx = null;
- if (undefined !== w) {
- this.m_back_w = w;
- }
- if (undefined !== h) {
- this.m_back_h = h;
- }
- this.m_div.style.width = this.m_back_w + "px";
- this.m_div.style.height = this.m_back_h + "px";
- this.m_back_div.style.width = this.m_back_w + "px";
- this.m_back_div.style.height = this.m_back_h + "px";
-
- this.m_back_div.style.position = "absolute";
- this.m_back_div.style.backgroundRepeat="no-repeat";
- this.m_back_div.style.backgroundImage = "url(imgs/" + url + ")";
- this.m_back_div.style.backgroundPosition = "0px; 0px";
-
- this.m_div.appendChild(this.m_back_div);
- },
- setzIndex : function(index) {
- this.m_div.style.zIndex = index;
- },
-
- setPos : function(x, y) {
- this.m_div.style.webkitTransitionDuration = "0.2s";
- this.m_div.style.webkitTransform = "translate(" + (x) + "px, " + (y) + "px)";
-
- },
- setShowPos : function(x, y) {
- this.m_show_x = x;
- this.m_show_y = y;
- },
- setHidePos : function(x, y) {
- this.m_hide_x = x;
- this.m_hide_y = y;
- },
- addMonitor : function(obj) {
- this.m_observer = obj;
- },
- removeMonitor : function() {
- this.m_observer = null;
- },
- setEnableBtn : function(btn) {
- this.m_btn_enable = btn;
- btn.m_div.style.zIndex = 1;
- },
-
- addButton : function(btn) {
- this.m_div.appendChild(btn.m_div);
- this.m_btn_list.push(btn);
- },
-
- addEnableBtn : function() {
-
- switch (this.m_state) {
- case this.MENU_SHOW: {
- if(this.m_btn_enable) {
- this.m_btn_enable.setSwitchState(this.m_btn_enable.SWITCH_OFF);
- }
- break;
- }
- case this.MENU_HIDE: {
- if(this.m_btn_enable) {
- this.m_btn_enable.setSwitchState(this.m_btn_enable.SWITCH_ON);
- }
- break;
- }
- default:{
- break;
- }
- }
- },
- setState : function(state, time) {
- // this.m_div.style.webkitTransitionDuration = time + "s";
- this.m_state = state;
- switch (this.m_state) {
- case this.MENU_SHOW: {
- // this.m_div.style.zIndex = 2;
- this.setPos(this.m_show_x, this.m_show_y);
- // this.addEvent();
- break;
- }
- case this.MENU_HIDE: {
- // this.m_div.style.zIndex = 0;
- this.setPos(this.m_hide_x, this.m_hide_y);
- // this.removeEvent(false);
- break;
- }
- default: {
- break;
- }
- }
-
- this.addEnableBtn();
- },
- removeButton : function(btn) {
- var del = -1;
- var index = 0;
- for (index = 0; index < this.m_btn_list.length; index++) {
- if (btn === this.m_btn_list[index]) {
- del = index;
- break;
- }
- }
- if (-1 !== del) {
- btn.removeEvent();
- btn.removeMonitor();
- this.m_btn_list.splice(del, 1);
- }
- },
- addEvent : function() {
- var index = 0;
- var btn = null;
- for (index = 0; index < this.m_btn_list.length; index++) {
- btn = this.m_btn_list[index];
- btn.addMonitor(this);
- btn.setEnable(true);
- }
- },
- removeEvent : function(all) {
- var index = 0;
- var btn = null;
- for (index = 0; index < this.m_btn_list.length; index++) {
- btn = this.m_btn_list[index];
- btn.removeMonitor();
- btn.setEnable(false);
- }
- },
- buttonClick : function(btn) {
- if ((null !== this.m_observer) && (this.m_observer.menuItemClick)) {
- this.m_observer.menuItemClick(btn);
- }
- }
- });
- })();
|