如果您已经创建了每个动态页面,您可能会注意到,如果您始终使用不需要滚动条的页面高度,然后动态添加内容,则会出现滚动条。当它这样做时,它会将我的所有内容“推”到滚动条的左侧,看起来页面上的所有内容都会跳转一点。是否有可能使滚动条位置:绝对?
是否有可能使滚动条像绝对位置一样操作,以便不会将我的内容全部推送到左侧,而只是覆盖内容。我不喜欢内容全部“跳”到左边的方式;它看起来很讨厌。
谢谢
如果您已经创建了每个动态页面,您可能会注意到,如果您始终使用不需要滚动条的页面高度,然后动态添加内容,则会出现滚动条。当它这样做时,它会将我的所有内容“推”到滚动条的左侧,看起来页面上的所有内容都会跳转一点。是否有可能使滚动条位置:绝对?
是否有可能使滚动条像绝对位置一样操作,以便不会将我的内容全部推送到左侧,而只是覆盖内容。我不喜欢内容全部“跳”到左边的方式;它看起来很讨厌。
谢谢
你可以,但它不会是完美的。从this后复制代码:
// Used like $('#my-id').hasScrollbar();
jQuery.fn.hasScrollbar = function() {
var scrollHeight = this.get(0).scrollHeight;
//safari's scrollHeight includes padding
if ($.browser.safari)
scrollHeight -= parseInt(this.css('padding-top')) + parseInt(this.css('padding-bottom'));
if (this.height() < scrollHeight)
return true;
else
return false;
}
可以查询,看是否滚动条是存在的。在此之前,然而,你将有一个全局变量,那就是视口的宽度之前出现的滚动条:
var viewportWidth = $(window).width();
并运行上述功能后,你可以使用的新视口宽度比较这viewportWidth
用滚动条的窗口,和margin-right
的body
的负数的差异。
我其实想到最初这样做,但如果可能的话想要一个CSS解决方案。看起来像没有可用的,所以我可能会使用你的方法。谢谢 – 2012-07-31 20:19:47
你问的问题无法做到。
你可以然而,迫使它出现在任何时候都:
#id {
overflow: scroll;
}
但是,这是可怕的丑陋。
您可以使用'window.resize'事件处理程序通过比较'document'和'window'的高度来检测何时需要滚动条,根据需要在主体中添加或删除一些右边距,但这是一个JavaScript的解决方案,并在实践中有点混乱 – jackwanders 2012-07-31 20:28:41