Размещение полосы прокрутки Chrome Extension - PullRequest
3 голосов
/ 05 апреля 2011

После использования Chrome Extensions я заметил, что когда данные внутри действия страницы попадают в определенную точку, полосы прокрутки автоматически прикрепляются к всплывающему окну, как я и ожидал.Однако вместо того, чтобы толкать контент слева от полосы прокрутки, он перекрывает контент, в результате чего горизонтальная полоса прокрутки становится активной.В итоге я просто добавил проверку своих данных и применил класс css, чтобы сдвинуть содержимое влево, чтобы он проходил параллельно полосе прокрутки, а рядом с ней не было под ней.Как правильно справиться с этим, кроме моего хакерского решения?

Ответы [ 3 ]

1 голос
/ 01 августа 2011

Я не нашел способ сделать это, который не является хаком, но вот самый простой хак, который я мог придумать:

<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()">

Идея состоит в том, чтобы определить, находится ли вертикальная полоса прокрутки виспользуйте, и если это так, вычислите его ширину и выделите достаточно дополнительного отступа для него.

1 голос
/ 05 апреля 2011

Мне тоже было интересно. В настоящее время я просто не помещаю ничего важного ближе 20 пикселей к правой стороне всплывающего окна и отключаю горизонтальные полосы прокрутки:

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

То есть, когда появляется вертикальная полоса прокрутки, содержимое, по крайней мере, не скачет.

0 голосов
/ 05 апреля 2011

Возможно, вам нужно указать ширину полосы прокрутки.

::-webkit-scrollbar {
    width: 42px; //Do not know actual width, but I assume you do
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...