【问题标题】:Sliding Div to auto height将 Div 滑动到自动高度
【发布时间】:2010-09-11 05:55:23
【问题描述】:

我有一个可以滑入和滑出的 div。 为此,我只需将高度每秒增加 2px,直到从高度 0 开始的预设高度。

考虑到 div 的起始属性是 display:none 和 height:0,是否有办法确定 div 的内容高度,因为内容是不可预测的高度?

谢谢。

【问题讨论】:

    标签: javascript html height slide


    【解决方案1】:

    诀窍是暂时显示它,测量高度,然后再次隐藏它。如果你使用可见性:隐藏和位置:绝对,它不会在你这样做的时候改变页面布局。

    function getElementHeight(el)
    {
        var styles = {
            visibility: el.style.visibility,
            height: el.style.height,
            position: el.style.position,
            display: el.style.display
        };
        el.style.visibility = "hidden";
        el.style.height = "auto";
        el.style.position = "absolute";
        el.style.display = "block";
        var height = el.offsetHeight;
        el.style.display = styles.display;
        el.style.position = styles.position;
        el.style.height = styles.height;
        el.style.visibility = styles.visibility;
        return height;
    }
    

    如果你想得到样式高度应该是多少,可以在var height = el.offsetHeight;后面加上这两行:

    el.style.height = height + "px";
    height += (height - el.offsetHeight);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2014-03-29
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多