Пробовал кучу вариантов, но получается определить ширину только без прокрутки (с высотой вроде удалось побороть).
Пробовал
function getDocumentWidth()
{
return (document.body.scrollWidth > document.body.offsetWidth)?document.body.scrollWid th:document.body.offsetWidth;
}
Но с прокруткой не работает!
Хотел отдельно посчитать ширину прокрутки, но почему-то
function getBodyScrollLeft()
{
return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
возвращает 0!
- 05.08.2012 17:47
- 05.08.2012 18:24
Проверил в трех браузерах: alert(document.body.scrollWidth); без лишних проверок выдал абсолютно верную ширину для всех вариантов с прокруткой и без нее.
Спасибо сказали:
OKyJIucT(05.08.2012), - 06.08.2012 00:39
gwer, Я про document.body.scrollLeft говорил, что 0 возвращает. А document.body.scrollWidth возвращает ширину без прокрутки.
- 06.08.2012 01:17
- 06.08.2012 01:41
gwer, В мозиле последней версии тестил, когда на странице есть горизонтальная прокрутка, то document.body.scrollWidth возвращает ширину только видимой части, игнорируя то, что за скроллом.
- 06.08.2012 10:58
Запустил нетбук с виндой. Разрешение 1024х600. Firefox 14.0.1. Окно браузера развернуто на весь экран. Содержимое тестируемой страницы:
Код:При открытии страницы вылетает алерт со значением '2000'. При том, что видимая часть — около 1000.<style>* {padding:0; margin:0;}</style> <div style="width:2000px">t</div> <script> alert(document.body.scrollWidth); </script>
Да и, в общем-то, приведенная функция getDocumentWidth() тоже вроде верно работает. Может мы друг друга не понимаем где-то?Последний раз редактировалось gwer; 06.08.2012 в 11:00.
- 06.08.2012 15:10
gwer, Ваш код действительно работает, но если прописать <!DOCTYPE html>, то код выдет только ширину видимой части документа.
<!DOCTYPE html>
<style>* {padding:0; margin:0;}</style>
<div style="width:2000px">t</div>
<script>
alert(document.body.scrollWidth);
</script>
---------- Сообщение добавлено 13:10 ---------- Предыдущее 13:06 ----------
Нашел решение:
function get_document_width()
{
return Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
}
Осталось потестить в других браузерах.
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Яндекс вебматер показывает что изключена карта сайта Неверный формат документа | Вопросы от новичков | 6 | 29.07.2012 21:48 |
как сделать чтобы 1 запись выводилась на всю ширину, а остальные под ней в 2 колонки в wp | Web программирование | 0 | 15.02.2012 22:01 |
как задать ширину фона в % через CSS | Web программирование | 4 | 28.04.2011 11:17 |





