Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2008, 21:27
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Высота всей страницы(вместе с невидимой частью)
Дано:
Страница большой высоты. Т.к. вся не помещается в окне браузера, имеется вертикальный скролл.

Доктайп XHTML Strict 1.0
В CSS имеем:
Код:
html,body{height:100%}

Найти:
Вывести высоту страницы в px.


Как я пытался:
1.alert(document.getElementById('html').offsetHeig ht)
2.alert(document.getElementById('html').clientHeig ht)

В обоих случаях выводится результат равный высоте окна браузера.
Как я думаю, из-за html:100%.

Вопрос: Как же узнать высоту всей страницы, а не только видимой части?
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2008, 22:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

lancer,
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera')  > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);

function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}

function getViewportHeight() {
  return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}

Последний раз редактировалось Kolyaj, 18.04.2008 в 22:27.
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2008, 23:06
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Kolyaj, спасибо. Выручил.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2009, 13:23
Gamler
 
Сообщений: n/a

Сообщение от Kolyaj Посмотреть сообщение
lancer,
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera')  > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);

function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}

function getViewportHeight() {
  return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}
В IE этот код неработет!
Что можна придумать с Explorer'ом?
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2009, 13:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gamler
В IE этот код неработет!
Отличный багрепорт, чувак. Могу только сказать, что все работает.
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2010, 14:16
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Отличный рабочий способ.
Для аналогичного поиска ширины, в функции надо все "Height" заменить на "Width".
ЗЫ: пишу, потому что до меня самого доходило это около часа.

Последний раз редактировалось vahrusha, 08.08.2010 в 15:47.
Ответить с цитированием
  #7 (permalink)  
Старый 05.03.2016, 00:00
Новичок на форуме
Отправить личное сообщение для andrewstezenk Посмотреть профиль Найти все сообщения от andrewstezenk
 
Регистрация: 04.03.2016
Сообщений: 3

Всё прекрасно работает в хроме, по крайней мере)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск