2011-04-05 90 views
3

涉足Chrome扩展后,我注意到,当页面动作内的数据到达某个点时,滚动条会自动附加到弹出窗口,这是我的预期。但是,不是将内容推送到滚动条的左侧,而是覆盖内容,导致水平滚动条变为活动状态。我最终只是添加了一个对数据的检查,并应用一个css类将内容向左推进,以便与滚动条并行运行,并且不在其下方。除了我的黑客解决方案之外,处理这个问题的正确方法是什么?Chrome扩展滚动条放置

回答

1

我也在想这个。当垂直滚动条显示的内容至少不跳

body {overflow-x:hidden;overflow-y:auto;} 

所以:目前我只是不把任何东西重于20像素更接近弹出窗口的右侧,并禁用水平滚动条。

+0

唯一的问题是,当没有足够的内容导致溢出时,它会在右侧创建空白空间。这基本上就是我在建议的解决方案之前所做的。 – chrisw 2011-04-05 16:38:24

0

也许你需要在滚动条上指定一个宽度。

::-webkit-scrollbar { 
    width: 42px; //Do not know actual width, but I assume you do 
} 
1

我还没有找到一个方法来做到这一点,是不是黑客攻击,但这里是我能想到的最简单的黑客:

<script type="text/javascript"> 
function tweakWidthForScrollbar() { 
    var db = document.body; 
    var scrollBarWidth = db.scrollHeight > db.clientHeight ? 
     db.clientWidth - db.offsetWidth : 0; 
    db.style.paddingRight = scrollBarWidth + "px"; 
} 
</script> 
... 
<body onresize="tweakWidthForScrollbar()"> 

这样做是为了检测是否垂直滚动条正在使用,如果是,则计算其宽度并为其分配足够的额外填充。

+0

这在Chrome中不起作用,'db.clientWidth - db.offsetWidth'返回0。 – w00kie 2011-12-16 10:07:34