【发布时间】:2009-10-06 05:55:35
【问题描述】:
有没有办法检测 div 何时显示或隐藏滚动条?当滚动条显示时,我想调整 div 内的一些控件的大小,这样滚动条就不会覆盖它们。
所以,我需要一个在滚动条出现和消失时触发的事件。 谢谢, 布赖恩
【问题讨论】:
标签: javascript html
有没有办法检测 div 何时显示或隐藏滚动条?当滚动条显示时,我想调整 div 内的一些控件的大小,这样滚动条就不会覆盖它们。
所以,我需要一个在滚动条出现和消失时触发的事件。 谢谢, 布赖恩
【问题讨论】:
标签: javascript html
您可以将内容包装在另一个 DIV 中 - 然后您可以检测内容的高度,如果它高于包含的 DIV,则调整其大小。一个 jQuery 的例子:
if($('#content-wrapper-div').height() > $('#scrolling-div').height())
{
var oldWidth = $('#content-wrapper-div').width();
$('#content-wrapper-div').css('width', (oldWidth - 20) + 'px')
}
“20”可以根据滚动条的宽度进行更改(或者您可以使用高度,或调整其中的各个控件的大小)。
【讨论】:
对于 20px 来说似乎需要做很多工作。您可能需要重新考虑您的设计。但我会咬人的。
没有“elementGotBigger”事件,因此要检测到您需要知道哪些用户交互可能导致该事件:
然后让每个事件触发一个检查函数
然后如果滚动大小大于元素的大小,做一些事情。
这是一个使用 mootools 的示例:http://mooshell.net/HC3g9/
【讨论】:
你的问题引起了我的兴趣,我对另一个答案并不感到兴奋(没有冒犯,看起来很老套),尽管它可能有效。在谷歌搜索更好的方式时,我偶然发现了this jQuery plugin。使用这样的东西会很好,因为不同的浏览器可能会以不同的宽度呈现滚动条。
【讨论】: