Javascript Chrome扩展滚动条放置
在涉足Chrome扩展之后,我注意到当页面操作中的数据到达某个点时,滚动条会自动连接到弹出窗口,这是我所期望的。但是,它不会将内容推到滚动条的左侧,而是覆盖内容,从而使水平滚动条变为活动状态。最后,我只是在我的数据上添加了一个检查,并应用了一个css类将内容推到左边,使其与滚动条平行运行,而不是在滚动条的旁边。除了我的黑客解决方案之外,还有什么正确的方法来处理这个问题呢?我自己也在想这个问题。目前,我只是没有在弹出窗口的右侧放置比20px更重要的内容,并禁用水平滚动条:Javascript Chrome扩展滚动条放置,javascript,html,css,google-chrome,google-chrome-extension,Javascript,Html,Css,Google Chrome,Google Chrome Extension,在涉足Chrome扩展之后,我注意到当页面操作中的数据到达某个点时,滚动条会自动连接到弹出窗口,这是我所期望的。但是,它不会将内容推到滚动条的左侧,而是覆盖内容,从而使水平滚动条变为活动状态。最后,我只是在我的数据上添加了一个检查,并应用了一个css类将内容推到左边,使其与滚动条平行运行,而不是在滚动条的旁边。除了我的黑客解决方案之外,还有什么正确的方法来处理这个问题呢?我自己也在想这个问题。目前,我只是没有在弹出窗口的右侧放置比20px更重要的内容,并禁用水平滚动条: body {overfl
body {overflow-x:hidden;overflow-y:auto;}
因此,当垂直滚动条出现时,内容至少不会跳转。也许您需要在滚动条上指定一个宽度
::-webkit-scrollbar {
width: 42px; //Do not know actual width, but I assume you do
}
我还没有找到一种不属于黑客的方法,但这里是我能想到的最简单的黑客:
<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()">
函数tweakWidthForScrollbar(){
var db=document.body;
var scrollBarWidth=db.scrollHeight>db.clientHeight?
db.clientWidth-db.offsetWidth:0;
db.style.paddingRight=滚动条宽度+“px”;
}
...
其目的是检测垂直滚动条是否正在使用,如果正在使用,则计算其宽度并为其分配足够的额外填充。唯一的问题是,当没有足够的内容导致溢出时,它会在右侧创建空白。这基本上就是我在提出黑客解决方案之前所做的。这在Chrome中不起作用,
db.clientWidth-db.offsetWidth
返回0。