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)

vjuenf 17.08.2012 13:22

как сделать вилку if else на размер экрана юзера?
 
нужно,чтобы в зависимости от ширины окна браузера менялась ширина объекта #page по принципу: если размер такойто - применить к объекту #page такойто класс. и что бы это работало постоянно,реагируя на последующие изменения размеры окна браузера

lord2kim 17.08.2012 13:34

vjuenf, или
<body onResize="func()">

или
window.onresize = function () {  }

var wwidth=(window.innerWidth)?window.innerWidth:
    ((document.all)?document.body.offsetWidth:null);
var wheight=(window.innerHeight)?window.innerHeight:
    ((document.all)?document.body.offsetHeight:null);
switch (true) {
  case (wwidth == 1000 && wheight == 1000): {}
  case (...): {}
  ...
}

vjuenf 17.08.2012 13:40

мне бы через if else...
можно более подробно,всё необходимое, т.к.я не довъехал..

lord2kim 17.08.2012 15:05

vjuenf,
window.onresize = function() {
  var wwidth=(window.innerWidth)?window.innerWidth:
    ((document.all)?document.body.offsetWidth:null),
  page = document.getElementById("page");
  if (wwidth == 1000) { page.style.width = 1000; }
  else { if (wwidth == 2000) { page.style.width = 2000; }
  else { ... } }
}

vjuenf 17.08.2012 19:31

возможно,я туплю, но по моему онресайз - изменение размера,окна,а надо, что бы он менял размер не только при изменении размера окна, но и изначально корректировал размер, т.е. при загрузке сайта - прошёл вилку и при ресайзе тоже.

если не сложно - выложи фул для кода:

<html>
<head>
<style>
.page{
width:1100px;
}
</style>
</head>
<body>
<div class="page">
много контента
</div>
</body>

lord2kim 17.08.2012 19:49

vjuenf,
<html>
<head>
<style>
#page{
width:1100px;
}
</style>
<script>
function resizebl() {
  var wwidth=(window.innerWidth)?window.innerWidth:
    ((document.all)?document.body.offsetWidth:null),
  page = document.getElementById("page");
  switch (true) {
    case wwidth == 1000: { page.style.width = 1000; }
    case wwidth == 2000: { page.style.width = 2000; }
  }
}

window.onresize = resizebl();
window.onload = resizebl();
</script>
</head>
<body>
<div id="page">
много контента
</div>
</body>
</html>

если конечно он правильно везде определяет размеры окна

vjuenf 17.08.2012 20:08

Если Вас это так бесит - не будете ли вы так любезны, рассказать, как выяснить ширину клиентской части?

lord2kim 17.08.2012 20:22

Цитата:

Сообщение от vjuenf (Сообщение 198339)
Если Вас это так бесит - не будете ли вы так любезны, рассказать, как выяснить ширину клиентской части?

как то так
w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));

vjuenf 17.08.2012 20:43

эх,если бы мне,нубскому существу ещё объяснили все элементы метода, предложенного lord2kim? т.к. я интересуюсь не только конкретным случаем,но и вообще системой...

Ваше негодование вполне понятно, НО!
1)я нуб. можно сказать полный.
2)я впринципе не предполагал таких вещей. т.е. я знал,о боковых панелях, но того, что всё так сложно я не предполагал,т.к. не понимаю зачем вообще нужна ширина всего окна,если влияь можно только на клиентскую часть?

vjuenf 17.08.2012 21:25

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

а, да хотел спросить:
1)почему вместо класса page поставлен id? через document.getelementsbyclassname нельзя аналогично?

2)мне тяжеловато разбираться в case'ах, ядаже в заголовке просил через ifelse... как выглядит последний результат в ifelse?


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