网页里面用到滑动门效果和折叠菜单效果,但是两个效果都是通过调取ul、li进行相关显示的
因为折叠菜单式在滑动门的内容里面,滑动门显示正常,但是折叠菜单无效,有什么办法解决这个冲突问题呢?//滑动门js代码
function setTab(m,n){
 var tli=document.getElementById("menu"+m).getElementsByTagName("li");
 var mli=document.getElementById("main"+m).getElementsByTagName("ul");
 for(i=0;i<tli.length;i++){
  tli[i].className=i==n?"hover":"";
  mli[i].style.display=i==n?"block":"none";
 }
}
//折叠菜单
function kslj(id,onlyone){
if(!document.getElementById || !document.getElementsByTagName){return false;}
this.menu=document.getElementById(id);
this.submenu=this.menu.getElementsByTagName("ul");
this.speed=3;
this.time=10;
this.onlyone=onlyone==true?onlyone:false;
this.links = this.menu.getElementsByTagName("a");
}
kslj.prototype.init=function(){
var mainInstance = this;
for(var i=0;i<this.submenu.length;i++){
this.submenu[i].getElementsByTagName("span")[0].onmouseenter=function(){
mainInstance.toogleMenu(this.parentNode);
};
}
for(var i=0;i<this.links.length;i++){
this.links[i].onmouseenter=function(){
this.className = "current";
mainInstance.removeCurrent(this);
}
}
}
kslj.prototype.removeCurrent = function(link){
for (var i = 0; i < this.links.length; i++){
if (this.links[i] != link){
this.links[i].className = " ";
}
}
}
kslj.prototype.toogleMenu=function(submenu){
if(submenu.className=="open"){
this.closeMenu(submenu);
}else{
this.openMenu(submenu);
}
}
kslj.prototype.openMenu=function(submenu){
var fullHeight=submenu.getElementsByTagName("span")[0].offsetHeight;
var links = submenu.getElementsByTagName("a");
for (var i = 0; i < links.length; i++){
fullHeight += links[i].offsetHeight;
}
 var moveBy = Math.round(this.speed * links.length);
var mainInstance = this;
 var intId = setInterval(function() {
  var curHeight = submenu.offsetHeight;
  var newHeight = curHeight + moveBy;
  if (newHeight <fullHeight){
  submenu.style.height = newHeight + "px";
  }else {
clearInterval(intId);
submenu.style.height = "";
submenu.className = "open";
}
}, this.time);
this.collapseOthers(submenu);
}
kslj.prototype.closeMenu=function(submenu){
var minHeight=submenu.getElementsByTagName("span")[0].offsetHeight;
    var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length);
var mainInstance = this;
 var intId = setInterval(function() {
  var curHeight = submenu.offsetHeight;
  var newHeight = curHeight - moveBy;
  if (newHeight > minHeight){
  submenu.style.height = newHeight + "px";
  }else {
clearInterval(intId);
submenu.style.height = "";
submenu.className = "";
}
}, this.time);
}
kslj.prototype.collapseOthers = function(submenu){
if(this.onlyone){
for (var i = 0; i < this.submenu.length; i++){
if (this.submenu[i] != submenu){
this.closeMenu(this.submenu[i]);
}
}
}
}我在想是不是把其中一个的ul、li改成别的标签呢?但是什么标签可以代替这俩货?