Пробовал кучу вариантов, но получается определить ширину только без прокрутки (с высотой вроде удалось побороть). Пробовал 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!
http://seogram.ru - Продвижение сайтов с оплатой только за потенциальных клиентов.
Проверил в трех браузерах: alert(document.body.scrollWidth); без лишних проверок выдал абсолютно верную ширину для всех вариантов с прокруткой и без нее.
gwer, Я про document.body.scrollLeft говорил, что 0 возвращает. А document.body.scrollWidth возвращает ширину без прокрутки.
Ну а я о том, что document.body.scrollWidth мне всегда все верно возвращает. Что не так при использовании чисто этой конструкции? На каких примерах в каких браузерах возникает какая проблема?
gwer, В мозиле последней версии тестил, когда на странице есть горизонтальная прокрутка, то document.body.scrollWidth возвращает ширину только видимой части, игнорируя то, что за скроллом.
http://seogram.ru - Продвижение сайтов с оплатой только за потенциальных клиентов.
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); } Осталось потестить в других браузерах.
http://seogram.ru - Продвижение сайтов с оплатой только за потенциальных клиентов.