>웹 프론트엔드 >JS 튜토리얼 >Node.js 배경 관리 메뉴 class-MenuSwitch_js 객체 지향

Node.js 배경 관리 메뉴 class-MenuSwitch_js 객체 지향

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 19:08:561084검색

MenuSwitch 클래스 작성의 출발점은 백그라운드 관리 항목이 많아질수록 메뉴 표시에 스크롤 바가 나타나서 페이지가 보기에 매우 보기 흉하다는 것에서 시작하여 이 JS 클래스를 직접 작성하게 되었습니다.
이 기능 클래스는 스타일과 기능을 분리하기 위해 DIV CSS JS 메서드를 사용하여 현재 널리 사용되는 Web2.0 접근 방식을 채택합니다. 먼저 시연효과를 보여드리겠습니다

코드복사 코드는 다음과 같습니다

    기능 메뉴 스위치(className){        
        this._elements = [];
        this._default = -1;
        this._className = className;
        this._previous = false;
    }
    MenuSwitch.prototype.setDefault = function(id){
        this._default = 숫자(id);
    }
    MenuSwitch.prototype.setPrevious = function(flag){
        this._previous = Boolean(flag);
    }
    MenuSwitch.prototype.collectElementbyClass = function(){
        this._elements = [];
        var allelements = document.getElementsByTagName("div");
        for(var i=0;i            var mItem = allelements[i];
            if (typeof mItem.className == "string" && mItem.className == this._className){
              var h3s = mItem.getElementsByTagName("h3");
               var uls = mItem.getElementsByTagName("ul");
               if(h3s.length == 1 && uls.length == 1){
                  h3s[0].style.cursor = "손";                    
                   if(this._default == this._elements.length){
                     uls[0].style.display = "차단";    
                   }else{
                      uls[0].style.display = "없음";    
                   }
                   this._elements[this._elements.length] = mItem;
               }               
            }
        }
    }
    MenuSwitch.prototype.open = function(mElement){
        var uls = mElement.getElementsByTagName("ul");
        uls[0].style.display = "차단";
    }
    MenuSwitch.prototype.close = function(mElement){
        var uls = mElement.getElementsByTagName("ul");
        uls[0].style.display = "없음";
    }
    MenuSwitch.prototype.isOpen = function(mElement){
        var uls = mElement.getElementsByTagName("ul");        
        return uls[0].style.display == "차단";
    }
    MenuSwitch.prototype.toggledisplay = 기능(헤더){
        var mItem;
        if(window.addEventListener){
            mItem = header.parentNode;
        }else{
            mItem = header.parentElement;
        }
        if(this.isOpen(mItem)){
            this.close(mItem);
        }else{
            this.open(mItem);
        }        
        if(!this._previous){
           for(var i=0;i               if(this._elements[i] != m항목 ){               
                   var uls = this._elements[i].getElementsByTagName("ul");
                    uls[0].style.display = "없음";        
               }
            }
        }
    }    
    MenuSwitch.prototype.init = function(){        
        var 인스턴스 = 이것;
        this.collectElementbyClass();
        if(this._elements.length==0){
            return;
        }
        for(var i=0;i           var h3s = this._elements[i].getElementsByTagName("h3");            
            if(window.addEventListener){
               h3s[0].addEventListener("click",function(){instance.toggledisplay(this);},false);
            }else{
               h3s[0].onclick = function(){instance.toggledisplay(this);}
            }
  
    }

打包文件下载
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.