Как определить ширину документа с прокруткой?

(Ответов: 6, Просмотров: 1146)
  1. Опытный Аватар для archerl
    • Регистрация: 02.10.2011
    • Сообщений: 469
    • Записей в дневнике: 1
    • Репутация: 26
    • Webmoney BL: ?
    Пробовал кучу вариантов, но получается определить ширину только без прокрутки (с высотой вроде удалось побороть).
    Пробовал
    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 - Продвижение сайтов с оплатой только за потенциальных клиентов.
    • 0
  2. Студент
    • Регистрация: 14.01.2012
    • Сообщений: 41
    • Репутация: 14
    • Webmoney BL: ?
    Проверил в трех браузерах: alert(document.body.scrollWidth); без лишних проверок выдал абсолютно верную ширину для всех вариантов с прокруткой и без нее.
    • 1

    Спасибо сказали:

    OKyJIucT(05.08.2012),
  3. Опытный Аватар для archerl
    • Регистрация: 02.10.2011
    • Сообщений: 469
    • Записей в дневнике: 1
    • Репутация: 26
    • Webmoney BL: ?
    gwer, Я про document.body.scrollLeft говорил, что 0 возвращает. А document.body.scrollWidth возвращает ширину без прокрутки.
    http://seogram.ru - Продвижение сайтов с оплатой только за потенциальных клиентов.
    • 0
  4. Студент
    • Регистрация: 14.01.2012
    • Сообщений: 41
    • Репутация: 14
    • Webmoney BL: ?
    Цитата Сообщение от archerl Посмотреть сообщение
    gwer, Я про document.body.scrollLeft говорил, что 0 возвращает. А document.body.scrollWidth возвращает ширину без прокрутки.
    Ну а я о том, что document.body.scrollWidth мне всегда все верно возвращает. Что не так при использовании чисто этой конструкции? На каких примерах в каких браузерах возникает какая проблема?
    • 0
  5. Опытный Аватар для archerl
    • Регистрация: 02.10.2011
    • Сообщений: 469
    • Записей в дневнике: 1
    • Репутация: 26
    • Webmoney BL: ?
    gwer, В мозиле последней версии тестил, когда на странице есть горизонтальная прокрутка, то document.body.scrollWidth возвращает ширину только видимой части, игнорируя то, что за скроллом.
    http://seogram.ru - Продвижение сайтов с оплатой только за потенциальных клиентов.
    • 0
  6. Студент
    • Регистрация: 14.01.2012
    • Сообщений: 41
    • Репутация: 14
    • Webmoney BL: ?
    Запустил нетбук с виндой. Разрешение 1024х600. Firefox 14.0.1. Окно браузера развернуто на весь экран. Содержимое тестируемой страницы:
    Код:
    <style>* {padding:0; margin:0;}</style>
    <div style="width:2000px">t</div>
    <script>
    alert(document.body.scrollWidth);
    </script>
    При открытии страницы вылетает алерт со значением '2000'. При том, что видимая часть — около 1000.

    Да и, в общем-то, приведенная функция getDocumentWidth() тоже вроде верно работает. Может мы друг друга не понимаем где-то?
    Последний раз редактировалось gwer; 06.08.2012 в 11:00.
    • 0
  7. Опытный Аватар для archerl
    • Регистрация: 02.10.2011
    • Сообщений: 469
    • Записей в дневнике: 1
    • Репутация: 26
    • Webmoney BL: ?
    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 - Продвижение сайтов с оплатой только за потенциальных клиентов.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Яндекс вебматер показывает что изключена карта сайта Неверный формат документа
Вопросы от новичков 6 29.07.2012 21:48
как сделать чтобы 1 запись выводилась на всю ширину, а остальные под ней в 2 колонки в wp
Web программирование 0 15.02.2012 23:01
как задать ширину фона в % через CSS
Web программирование 4 28.04.2011 11:17

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры