检测<div>何时显示或隐藏滚动条</div>

时间:2009-10-05 21:08:32

标签: javascript html

有没有办法检测div何时显示或隐藏滚动条?当滚动条显示时,我想调整div中的一些控件,以便滚动条不会覆盖它们。

所以,我需要一个在滚动条出现时消失的事件并消失。 谢谢, 布赖恩

3 个答案:

答案 0 :(得分:2)

您可以将内容包装在另一个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”(或者您可以使用高度,或调整其中的单个控件的大小)。

答案 1 :(得分:1)

看起来像20px的很多工作。您可能想重新考虑您的设计。但我会咬人。

没有“elementGotBigger”事件,以便在用户交互可能导致之前检测到您需要知道的事件:

  1. DOM ready
  2. 窗口调整大小
  3. 您知道的其他一些事件可能会导致更改(可能是导航片段)
  4. 然后让每个事件触发一个检查

    的函数
    1. 元素的大小与
    2. 相比较
    3. 元素的滚动大小。
    4. 然后,如果滚动大小大于元素的大小,请执行填充。

      以下是mootools的示例:http://mooshell.net/HC3g9/

答案 2 :(得分:0)

你的问题引起了我的兴趣,我并没有对另一个答案感到兴奋(没有冒犯,似乎是hacky),虽然它可能有效。在谷歌搜索更好的方式,我偶然发现了this jQuery plugin。使用这样的东西会很好,因为不同的浏览器可能会以不同的宽度渲染滚动条。