Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展滚动条放置_Javascript_Html_Css_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展滚动条放置

Javascript Chrome扩展滚动条放置,javascript,html,css,google-chrome,google-chrome-extension,Javascript,Html,Css,Google Chrome,Google Chrome Extension,在涉足Chrome扩展之后,我注意到当页面操作中的数据到达某个点时,滚动条会自动连接到弹出窗口,这是我所期望的。但是,它不会将内容推到滚动条的左侧,而是覆盖内容,从而使水平滚动条变为活动状态。最后,我只是在我的数据上添加了一个检查,并应用了一个css类将内容推到左边,使其与滚动条平行运行,而不是在滚动条的旁边。除了我的黑客解决方案之外,还有什么正确的方法来处理这个问题呢?我自己也在想这个问题。目前,我只是没有在弹出窗口的右侧放置比20px更重要的内容,并禁用水平滚动条: body {overfl

在涉足Chrome扩展之后,我注意到当页面操作中的数据到达某个点时,滚动条会自动连接到弹出窗口,这是我所期望的。但是,它不会将内容推到滚动条的左侧,而是覆盖内容,从而使水平滚动条变为活动状态。最后,我只是在我的数据上添加了一个检查,并应用了一个css类将内容推到左边,使其与滚动条平行运行,而不是在滚动条的旁边。除了我的黑客解决方案之外,还有什么正确的方法来处理这个问题呢?

我自己也在想这个问题。目前,我只是没有在弹出窗口的右侧放置比20px更重要的内容,并禁用水平滚动条:

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。