首页 新闻 搜索 专区 学院

重新计算高度

0
悬赏园豆:100 [已解决问题] 解决于 2013-07-08 11:18

  

http://www.seafar.cn/

这个是我刚上传上好的客户网站他的左则有一个 点击弹出他下面的子栏目的功能,我这个点击后重新算高度的有问题 把几个子栏目都点开后在缩回去会有问题,请问这个该怎么处理,急。。。。。

就这段重算高度的

 

   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;
    }
}

严文Live的主页 严文Live | 初学一级 | 园豆:11
提问于:2013-05-23 11:33
< >
分享
最佳答案
0

http://style.yizimg.com/skins/SB5120Skin/style.css

这里面的overflow:hidden让所有子菜单都无法显示了

另外,你好像想限制鼠标右键,应该用oncontextmenu,但不建议这么做,这么做有什么用呢?一个F12什么都出来了。

为什么要计算高度?是想做slideDown和slideUp?但没看到这样的setInterval或setTimeout啊。

把height:0去掉,菜单就是显示和隐藏相应的块就行了,不用计算高度那么麻烦

收获园豆:100
Arliang | 菜鸟二级 |园豆:360 | 2013-05-30 20:54

谢谢啦已经解决了,把height去掉高度就行了的

严文Live | 园豆:11 (初学一级) | 2013-07-08 11:17
其他回答(5)
0

左右是啥 

哇~怪兽 | 园豆:603 (小虾三级) | 2013-05-23 12:17

是左则我写错了

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2013-05-24 11:11

@严文Live: 大哥 IE 7,8,9,10,火狐都没问题

支持(0) 反对(0) 丫的 | 园豆:1575 (小虾三级) | 2013-05-25 12:10

@tomcat1988: 不可能我测到所有浏览器都有,你多点下按产品类型下面的一级目录就可以看到了

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2013-05-27 09:46

@tomcat1988: 按产品类型下的一级目录会越点越少,原来有很多,点多几个一级目录展开,然后再点多几个缩回就有问题了,能看到一级目录明显少了很多

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2013-05-27 09:49

你这种实现模式不太好,最好是像那些商城一样,从右侧弹出一个框,丢上分类,这样才不错

支持(0) 反对(0) 花落红尘 | 园豆:208 (菜鸟二级) | 2013-05-27 09:58
0

他的左右有一个 点击弹出他下面的子栏目的功能 没看到在哪啊 截图

丫的 | 园豆:1575 (小虾三级) | 2013-05-23 12:34

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2013-05-24 11:10
0

没发现啥子问题

yyutudou | 园豆:997 (小虾三级) | 2013-05-23 12:43

有左则的点击弹出缩回后就有问题了

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2013-05-24 11:12

@严文Live: 没发现

支持(0) 反对(0) yyutudou | 园豆:997 (小虾三级) | 2013-05-24 13:53
0

除了在Quirks模式下显示不正常,但现在主流浏览器都不是这种解析方式。在Chrome、IE7、IE8下都显示正常。

客家岸田 | 园豆:404 (菜鸟二级) | 2013-05-25 16:25
0

不用计算高度,让他自适应就好

花落红尘 | 园豆:208 (菜鸟二级) | 2013-05-27 09:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册