时间:2021-05-26
写MenuSwitch类的出发点是因为随着后台管理项越来越多,从而导致菜单显示部出现了滚动条导致页面很不美观,自己蒙生写这个JS类了。
这个功能类采用了目前比较流行的Web2.0做法,使用DIV+CSS+JS方式,将样式和功能分开。我下面先把演示效果放出来吧
复制代码 代码如下:
functionMenuSwitch(className){
this._elements=[];
this._default=-1;
this._className=className;
this._previous=false;
}
MenuSwitch.prototype.setDefault=function(id){
this._default=Number(id);
}
MenuSwitch.prototype.setPrevious=function(flag){
this._previous=Boolean(flag);
}
MenuSwitch.prototype.collectElementbyClass=function(){
this._elements=[];
varallelements=document.getElementsByTagName("div");
for(vari=0;i<allelements.length;i++){
varmItem=allelements[i];
if(typeofmItem.className=="string"&&mItem.className==this._className){
varh3s=mItem.getElementsByTagName("h3");
varuls=mItem.getElementsByTagName("ul");
if(h3s.length==1&&uls.length==1){
h3s[0].style.cursor="hand";
if(this._default==this._elements.length){
uls[0].style.display="block";
}else{
uls[0].style.display="none";
}
this._elements[this._elements.length]=mItem;
}
}
}
}
MenuSwitch.prototype.open=function(mElement){
varuls=mElement.getElementsByTagName("ul");
uls[0].style.display="block";
}
MenuSwitch.prototype.close=function(mElement){
varuls=mElement.getElementsByTagName("ul");
uls[0].style.display="none";
}
MenuSwitch.prototype.isOpen=function(mElement){
varuls=mElement.getElementsByTagName("ul");
returnuls[0].style.display=="block";
}
MenuSwitch.prototype.toggledisplay=function(header){
varmItem;
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(vari=0;i<this._elements.length;i++){
if(this._elements[i]!=mItem){
varuls=this._elements[i].getElementsByTagName("ul");
uls[0].style.display="none";
}
}
}
}
MenuSwitch.prototype.init=function(){
varinstance=this;
this.collectElementbyClass();
if(this._elements.length==0){
return;
}
for(vari=0;i<this._elements.length;i++){
varh3s=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);}
}
}
}
打包文件下载
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本实例是为了实现在管理后台实现微信菜单的添加删除管理。1、首先我们需要新建一个数据库表用于存放menu菜单项可包含的字段有id、父类id、name、排序、是否显
本文实例讲述了js实现的后台左侧管理菜单代码。分享给大家供大家参考。具体如下:这是一个完美的后台左侧管理菜单,从样式来说,貌似出自专业人士之手,风格清新,操作实
菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.菜单组件由菜单栏(MenuBar
本文实例讲述了JS集合set类的实现与使用方法。分享给大家供大家参考,具体如下:js集合set类的实现functionSet(){
部门管理本功能为对后台管理员所分的部门进行管理。一、登录后台,单击“用户”菜单,选择“管理部门”子菜单,进入管理部门界面:二、进入管理部门界面: