高度自动 - 调整浏览器大小时显示隐藏内容

Posted

技术标签:

【中文标题】高度自动 - 调整浏览器大小时显示隐藏内容【英文标题】:Height auto - displaying hidden content when the browser is resized 【发布时间】:2012-06-12 00:19:36 【问题描述】:

这是我正在开发的网站,如果我不够具体,请原谅我,我是新手。

http://daniel.grocock.me/portnew

为#introexpand div 设置段落高度并具有调整大小的功能 当浏览器调整大小时,检查#introexpand 是否需要适应更大或更小的区域。

function resize() 
    $("#introexpand").css("height", "auto").show();
    var pHeight = $("#introexpand p:first").height() + 15;
    $("#introexpand").css("height", pHeight);

所以我在重置高度之前将 pHeight 设置为自动并显示一秒钟以便获得正确的高度。

现在的问题是,当我调整浏览器大小时,#introexpand div 在单击链接 span.learnmore 之前弹出。

如果我从 CSS 中删除自动高度,它似乎可以修复它,但是单击时会出现 #introexpand div 剂量函数。

【问题讨论】:

这个函数是否在$(window).resize()内部运行? @KevinB 是的,它调用了 $.(document.ready) 感谢@Wes,这是我学习的唯一方法;) 【参考方案1】:

您可以让此函数在 onresize-handler (jQuery) 中运行,但使用 CSS 解决起来更简单:

#introexpand 
    padding-bottom: 15px;

【讨论】:

我尝试调整 CSS 但不满意 - 还是我错过了其他东西?【参考方案2】:

为什么不以不同的方式处理这个问题。与其尝试计算#introexpand 需要的高度,不如让它始终为自动,当您点击span.learnmore 时只需切换display:none;

为此,您需要从#introexpand 中删除position:relative,并从#introexpand p 中删除position:absolute

完成此操作后,只需将 #introexpand 默认设置为 display:none,然后将 click span.learnmore 设置为 .show() div.slideToggle() 即可。

我只是认为你试图让它变得比它需要的更复杂。

【讨论】:

以上是关于高度自动 - 调整浏览器大小时显示隐藏内容的主要内容,如果未能解决你的问题,请参考以下文章

iscroll5 滚动条根据内容高度自动显示隐藏及强制横屏时方向错位

当显示窗格的实时调整大小时,它在拖动时很困难,并且窗格顶部在释放后被隐藏

如何在窗口调整大小时隐藏 Facebook 聊天框?

使用计时器事件,表单不会顺利调整大小

寻求一种优雅的、纯 CSS 的方法来隐藏/显示自动高度内容(带过渡)

UIView 调整内容大小