Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получаем ширину/высоту окна браузера, Доступная ширина 
:(
    Опции темы
InfMag
Дата 25.12.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Меня интересует такой вопрос как получить ширину и высоту браузера, только не самого браузера, а окна внутри него где отображается контент, еще учитывая то, что если есть скруллер, то ширина или высота по сути должна быть меньше.
PM   Вверх
InfMag
  Дата 27.12.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Судя по тому, что никто не отвечает сменю вопрос на похожий - как получить ширину всего окна браузера в целом? Хотя бы так...
PM   Вверх
InfMag
Дата 27.12.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Перекопал форум и все-таки нашел одну функцию:
Код

function screenSize() {
      var w, h;
      w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
      h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
      return {w:w, h:h};
}

alert('Ширина:'+screenSize()['w']+' Высота:'+screenSize()['h']);


Добавлено через 7 минут и 56 секунд
Только чтобы предусмотреть возможность скруллера вычитаем от каждого просто по 20 и стопудов smile 
PM   Вверх
InfMag
Дата 27.12.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Что-то я по этой теме с IE не поладил, но появилась более безумная идея smile поставить прозрачный рисунок width=100% и ширина по offsetWidth уже у тебя в руках ;)
PM   Вверх
SelenIT
Дата 27.12.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Странно, почему у body снимается offsetWidth/Height, хотя по логике должно бы сниматься то же, что у documentElement'а - clientЧто-то. И document.documentElement.clientWidth в условии тернарного оператора (перед ?) надо бы заменить на document.documentElement && document.documentElement.clientWidth (ну и для height аналогично) - для подстраховки на случай "встречи с динозавром" вроде IE5...

Могут, теоретически, быть сбои в случае экзотических стилей для самого body (напр., при эмуляции position:fixed через вложенный прокручиваемый div), но вообще имхо должно работать...

А в чем беда в IE? Случайно не с положением скроллбара при строгом доктайпе?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
pythonwin
Дата 27.12.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(InfMag @  27.12.2007,  18:06 Найти цитируемый пост)
Только чтобы предусмотреть возможность скруллера вычитаем от каждого просто по 20 и стопудов smile  

это не решение проблемы - нужно что-то другое.

Добавлено через 6 минут и 38 секунд
Код

<div width="100%" height="100%" id="div1">
....
</div>

<script>
div1 = document.getElementById('div1');
alert('Ширина:'+div1.clientWidth+' Высота:'+div1.clientHeight);
</script>

PM WWW GTalk Jabber   Вверх
Al Polonski
Дата 27.12.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 9.12.2004

Репутация: нет
Всего: нет



а screen.availWidth и screen.availHeight не то?
PM MAIL   Вверх
SelenIT
Дата 27.12.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Al Polonski, категорически не то. Это свойства экрана, а нас интересуют свойства клиентской области окна. Во-первых, юзер не обязан раскрывать окно браузера на весь экран (особенно если он большой), во-вторых, даже в полноэкранном режиме у многих изрядную часть окна занимают всевозможные сайдбары и т.п. - и это совсем не повод заставлять таких юзеров любоваться горизонтальной прокруткой smile.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
InfMag
Дата 28.12.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



pythonwin, а по поводу высоты получается уже не то... Потому что если контета будет много, то высота 100% будет уже больше чем высота читаемого окна.
PM   Вверх
ksnk
Дата 28.12.2007, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



InfMag, А если в стилях этого дива написать еще и overflow:hidden ?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
InfMag
Дата 28.12.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



ksnk, можно попробовать, испытаем..

Добавлено через 36 секунд
ksnk, хотя вряд ли, 100% это значит, что он будет сам по себе растягиваться как ни крути...
PM   Вверх
Zipo
Дата 13.1.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 4.11.2003

Репутация: нет
Всего: 0



Подсмотрел во всемирном известном tooltips.js:
Код

function GetWindowWidth() {
    var oCanvas = document.getElementsByTagName(
      (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];

    var wd = window.innerWidth ? window.innerWidth + window.pageXOffset : oCanvas.clientWidth + oCanvas.scrollLeft;
    //w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop;
    return wd;
}

PM MAIL   Вверх
InfMag
Дата 14.1.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Zipo, а высоту?
PM   Вверх
Zipo
Дата 14.1.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 4.11.2003

Репутация: нет
Всего: 0



Закомментированная строка определяет высоту.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0794 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.