Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как сделать вилку if else на размер экрана юзера? (https://javascript.ru/forum/dom-window/30830-kak-sdelat-vilku-if-else-na-razmer-ehkrana-yuzera.html)

lord2kim 17.08.2012 21:34

vjuenf,
<html>
<head>
<style>
#page{
width:1100px;
}
</style>
<script>
function resizebl() {
  var wwidth=(window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
  page = document.getElementById("page");
  /*switch (true) {
    case wwidth == 1000: { page.style.width = 1000; }
    case wwidth == 2000: { page.style.width = 2000; }
  }*/
  if (wwidth == 1000) page.style.width = 1000;
  if (wwidth == 2000) page.style.width = 2000;
}
 
window.onresize = resizebl();
window.onload = resizebl();
</script>
</head>
<body>
<div id="page">
много контента
</div>
</body>
</html>

если элемент 1, то проще использовать getElementById()
если несколько, то можно уже и через getElementsByClassName() не забывая при этом реализовывать таковой метод для IE
// getElementsByClassName for IE
if (typeof document.getElementsByClassName == 'undefined') {
	document.getElementsByClassName = function(classname) {
		var all = document.all,
		elements = [],
		regexpr = new RegExp('\\b'+classname+'\\b','ig');
		for(var x=0; x<all.length; x++) if (all[x].className)
		if (all[x].className.search(regexpr)!=-1) elements[elements.length] = all[x];
		return elements;
	}
}


Цитата:

Сообщение от vjuenf (Сообщение 198365)
мой мозг не понимает таких умных рассуждений. можно бытовыми словами и поподробнее?

если у объекта window существует свойство innerWidth используем таковое для определение клиентской ширины
если не существует такового свойства, проверяем существует ли у объекта document свойство clientWidth (можно и без documentElement), то используем таковое для определения клиентской ширины
если не существует и такового свойства, для определения клиентской ширины браузера используем свойство offsetWidth элемента body

vjuenf 17.08.2012 21:54

при использовании вашего кода firebug говорит, что page is null
я думаю,что это из-за того, что скрипт выполняется до загрузки дива "пэйдж"...

кстати, а есть разница между getElement и getelement? регистр важен?

vjuenf 17.08.2012 21:56

ага,если воткнуть скрипт не в хед,а после дива Эпейдж" - при загрузке работает,но не работает при ресайзе((( какже быть?

Deff 17.08.2012 22:44

vjuenf,
А плагин jQuery на сайте - у Вас есть ?

bes 17.08.2012 22:55

Цитата:

Сообщение от vjuenf
ага,если воткнуть скрипт не в хед,а после дива Эпейдж" - при загрузке работает,но не работает при ресайзе((( какже быть?

window.onresize = resizebl();
убрать скобки
PS: и читать учебник

vjuenf 18.08.2012 10:07

bes,
Спасибо, работает))
читать учебник хорошо,но учебник на этом сайте не содержит реальных или похожих на реальные примеры, поэтому мой нубский мозг не понимает как минимум половину смысла от тех или иных действий(((


Часовой пояс GMT +3, время: 09:36.