这个是我刚上传上好的客户网站他的左则有一个 点击弹出他下面的子栏目的功能,我这个点击后重新算高度的有问题 把几个子栏目都点开后在缩回去会有问题,请问这个该怎么处理,急。。。。。
就这段重算高度的
if (this.bStop2) {
var ddheight = this.parentNode.getElementsByTagName("dd")[0].getElementsByTagName("div");
if (ddheight.length > 0) {
showdd = ddheight.length * ddheight[0].offsetHeight;
startMove(this.parentNode.getElementsByTagName("dd")[0], { height: showdd });
showdis.style.height = showdis.offsetHeight + showdd + "px";
this.bStop2 = true;
} else {
this.bStop2 = false;
}
} else {
startMove(this.parentNode.getElementsByTagName("dd")[0], { height: 0 });
showdis.style.height = (showdis.offsetHeight - showdd) + "px";
this.bStop2 = false;
}
下面是所有的js
-----------------------------------------
function $(id) { return document.getElementById(id); }
var oObj = $("titleforproduct");
var odt = oObj.getElementsByTagName("dt");
var odd = oObj.getElementsByTagName("dd");
var showdis = $("showdl");
var bStop = true;
var objheight = showdis.offsetHeight;
showdis.style.height = "0px";
function showdl() {
if (bStop) {
startMove(showdis, { height: objheight })
bStop = true;
} else {
startMove(showdis, { height: 0 })
bStop = false;
}
bStop = !bStop;
}
for (var i = 0; i < odt.length; i++) {
odt.bStop2 = true
var showdd = 0;
odt.onclick = function () {
if (this.bStop2) {
var ddheight = this.parentNode.getElementsByTagName("dd")[0].getElementsByTagName("div");
if (ddheight.length > 0) {
showdd = ddheight.length * ddheight[0].offsetHeight;
startMove(this.parentNode.getElementsByTagName("dd")[0], { height: showdd });
showdis.style.height = showdis.offsetHeight + showdd + "px";
this.bStop2 = true;
} else {
this.bStop2 = false;
}
} else {
startMove(this.parentNode.getElementsByTagName("dd")[0], { height: 0 });
showdis.style.height = (showdis.offsetHeight - showdd) + "px";
this.bStop2 = false;
}
this.bStop2 = !this.bStop2;
}
}
http://style.yizimg.com/skins/SB5120Skin/style.css
这里面的overflow:hidden让所有子菜单都无法显示了
另外,你好像想限制鼠标右键,应该用oncontextmenu,但不建议这么做,这么做有什么用呢?一个F12什么都出来了。
为什么要计算高度?是想做slideDown和slideUp?但没看到这样的setInterval或setTimeout啊。
把height:0去掉,菜单就是显示和隐藏相应的块就行了,不用计算高度那么麻烦
谢谢啦已经解决了,把height去掉高度就行了的
左右是啥
是左则我写错了
@严文Live: 大哥 IE 7,8,9,10,火狐都没问题
@tomcat1988: 不可能我测到所有浏览器都有,你多点下按产品类型下面的一级目录就可以看到了
@tomcat1988: 按产品类型下的一级目录会越点越少,原来有很多,点多几个一级目录展开,然后再点多几个缩回就有问题了,能看到一级目录明显少了很多
你这种实现模式不太好,最好是像那些商城一样,从右侧弹出一个框,丢上分类,这样才不错
他的左右有一个 点击弹出他下面的子栏目的功能 没看到在哪啊 截图
没发现啥子问题
有左则的点击弹出缩回后就有问题了
@严文Live: 没发现
除了在Quirks模式下显示不正常,但现在主流浏览器都不是这种解析方式。在Chrome、IE7、IE8下都显示正常。
不用计算高度,让他自适应就好