Autor Zpráva
leonek
Profil
Dobrý den,

rád bych se zeptal jestli se dá zjistit (!nikoli upravit) stav okna prohlížeče.
Myslím jestli je minimalizované/maximalizované/zmenšené.
Potřebuji to do JS podmínky pro zobrazení jistého obrázku na pozadí.

Děkuji.
_es
Profil
leonek:
Potřebuji to do JS podmínky pro zobrazení jistého obrázku na pozadí.
A z akého dôvodu je na to treba JS?
leonek
Profil
Protože ten obrázek potřebuji zobrazit jen za určitých okolností. A mezi tyto okolnosti potřebuji přidat i tu jestli je okno prohlížeče v maximalizovaném stavu.
_es
Profil
leonek:
jestli je okno prohlížeče v maximalizovaném stavu
Prečo by od toho mal závisieť obsah zobrazovaný v prehliadači? To predsa nie je žiaden rozumný dôvod.
Chamurappi
Profil
Reaguji na leonka:
Minimalizovanost zjistit nejspíš nejde. (Leda nějakým obskurním měřením rychlosti překreslování.)
Maximalizovanost jde s jistou mírou spolehlivosti zjistit porovnáním screen.availWidth a document.body.offsetWidth, ale má-li člověk víc monitorů, nedostaneš ze screen.availWidth spolehlivá čísla.

obrázek potřebuji zobrazit jen za určitých okolností
Proč je důležitý zrovna stav okna? Z toho přeci nevyplývá, jak je okno (či zobrazovací plocha prohlížeče) skutečně velké.
leonek
Profil
Vytvořil jsem funkci na určení velikosti obrázku. Funkce má za úkol zjistit velikost použitelné plochy a podle ní pak vypočítat velikost obrázku. Pokud je použitelná plocha menší než třeba 1200px tak se obrázek nezobrazí.

Původně jsem tam měl místo screen.availWidth jen screen.width, za což děkuji Chamurappi.

Bohužel i v tomto stavu se obrázek zobrazí i když stránku aktualizuji ve zmenšeném okně.

function vys()
{
var elem_div = document.getElementById("logo");

if (screen.availWidth > 1200)
{
  var vyska = (screen.height) * (18/100);

  var elem = document.getElementById("logo_img");  
  elem.style.height = vyska + 'px';

  
  elem_div.style.height = vyska + 'px';

  
}
else { elem_div.style.display = 'none'; }

}
Chamurappi
Profil
Reaguji na leonka:
Vytvořil jsem funkci na určení velikosti obrázku.
To se dá pochopit, ale proč je důležité vědět, jestli je okno maximalizované? Lidi přeci mají různá rozlišení obrazovky.

Původně jsem tam měl místo screen.availWidth jen screen.width
Proč je důležité vědět šířku obrazovky? Není důležitější šířka plochy prohlížeče? Co když návštěvník má v prohlížeči otevřený nějaký postranní panel?

Vůbec by tě neměla zajímat maximalizace/minimalizace, ani velikost rozlišení hlavního monitoru, měla by tě zajímat pouze velikost <body> (nebo <html>).
leonek
Profil
Chamurappi:
Co když návštěvník má v prohlížeči otevřený nějaký postranní panel?
Stránka je rozvrstvena tak, že když tam obrázek je, ale okno prohlížeče je zmenšené tak se obrázek zasouvá pod hlavní div a mizí. Je to však dosti nešťastné řešení, které se teď snažím tímto odstranit. Výška obrázku se vypočítá, ale když je okno zmenšené tak bych chtěl aby úplně zmizel.
A to se neděje. Mrkněte na ten kód, jestli tam není něco špatně.
leonek
Profil
Tak jsem to vyřešil. Místo screen.width jsem použil document.body.scrollWidth. Sice obrázek zmizí až po aktualizování stránky, ale výsledek je uspokojující...

Děkuji za rady, hlavně Chamurappi

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: