Autor Zpráva
Sebasti
Profil *
Dobrý den, mám problém s Javascriptem, chci aby se mi nastavilo pozadí stránky, podle tohu, jaké rozlišení plochy používá uživatel. Vymyslel jsem něco jako:
<script type="text/javascript">
var sirka = screen.width;
var obrazek;
switch (sirka) {
case 1024 : obrazek = "Pozadi_1024.jpg";
case 1152 : obrazek = "Pozadi_1152.jpg";
case 1280 : obrazek = "Pozadi_1280.jpg";
default : obrazek = "Pozadi_1280.jpg";
}
document.write("<body style="background-image: URL('" +obrazek+ "')">")
</script>

ale problém je, že to nefunguje jak má ani v IE ani ve FF, Operu jsem nezkoušel...
Mohl by mi někdo prosím poradit?
Jen pro úplnost, na stránce používám externí CSS soubor, kde jsem zapoznámkoval background: url('images/back_.jpg'); ostatní vlastnosti jsem nechal vně.
Jde vůbec momocí JS pracovat s CSS souborem? - Otázka mimo téma.
peta
Profil
alert(screen.width)
alert(parseInt(screen.width))

switch (sirka) ???
sirka>neco
co kdyz mam nastavenych 567 bodu? jak to zapada do tveho switche?

a jinak pozor na velka mala pismenka u jmen souboru
Sebasti
Profil *
Pokud máte nastavé 567 bodů, tak se použije výchozí 'default : obrazek = "Pozadi_1280.jpg";'.
Alert bla bla... mi vohodí rozlišení a stejně se nepoužije Pozadi_1024.jpg, ale výchozí.
Pokud by jste měl nějaké nápady proč se to nechova podle plánu, byl bych Vám vděčný.
Beduin
Profil *
Nemá být switch breakovaný, aby nepropadával? Takže:

switch (sirka) {
case 1024 : obrazek = "Pozadi_1024.jpg";
break;
case 1152 : obrazek = "Pozadi_1152.jpg";
break;
case 1280 : obrazek = "Pozadi_1280.jpg";
break;
default : obrazek = "Pozadi_1280.jpg";
break;
}
Joker
Profil
Beduin
To bude asi ten problém, co s tím Sebasti má, ale IMHO je špatně už ta základní myšlenka.
1) dávat na default totéž jako pro šířku 1280, když ve většině případů bude ta šířka naopak menší než ty ostatní možnosti, mi přijde zvláštní.
2) Používaných rozlišení je kupa, jen používanější šířky jsou: 640, 800, 1024, 1152, 1280, 1400, 1600, 1680. Dělat variantu pro každé z nich mi přijde ujeté. Mimochodem, proč rozlišovat zrovna šířky 1024, 1152 a 1280, které jsou celkem nedaleko od sebe?
Takže když už, řešil bych varianty něco jako "do 900", "900-1300", "nad 1300"

3) a nejdůležitější: Informace o rozlišení obrazovky je pro takovéhle rozhodování k ničemu. Podle čeho by se to dalo rozlišit je informace o rozměrech prostoru pro stránku (viewport). Ty rozměry bývají obvykle menší než rozlišení obrazovky, ale o kolik, to už je různé. Například já mám rozlišení monitoru na šířku 1280px a v prohlížeči mám pro stránku k dispozici obvykle 1211 (sbalený boční panel) anebo 969 (rozbalený boční panel) pixelů.
Joker
Profil
dodatek: A to jsem ještě navíc zvyklý surfovat s lupou na 150%, takže pro mě by byl "akorát" obrázek na pozadí široký tak 600-800 pixelů... a to při rozlišení monitoru 1280x1024.
Sebasti
Profil *
Děkuji za pomoct, Joker má asi pravdu, ale pozadí mi tvoří souvislý obrázek (což je asi na webu ta největší blbost, dobře to vím)... No a důvod, proč použiju výchozí s rozlišením 1280 je ten, že v malem už ten obrázek neni pěkný a raděj tam nechma jen malou část, kterou budou tvořit asi 2 barevné sloupečky ze 3. A rozlišení pomocí operandů upravím. Stejně tak asi rozlišení prohlížeče, je to lepší myšlenka.
Beduin: a tobě moc díky, měl jsi pravdu, nejelo to kvuli breakům. Díky!

BTW: wanted.czweb.org/Blogy/01/index.html to je ta stránka, jen pro zajimavost, je to upravena free šablona. Dělám ten blog pro spolužačku.
Joker
Profil
Sebasti
No a důvod, proč použiju výchozí s rozlišením 1280 je ten, že v malem už ten obrázek neni pěkný
Stejně bych raději použil tu menší variantu (třeba těch 1024, když už)...
protože na "průměrné" stránce by ty tři šířky by mohly vychytat tak 87% návštěvníků a z toho zbytku by mělo 8% šířku nižší než 1024 a 5% šířku vyšší než 1280, takže pravděpodobnější je spíš ta nižší.

Každopádně by ale ten obrázek neměl být *tolik* závislý na rozlišení, ten rozdíl mezi 1024 a 1152 (nebo 1152 a 1280) zakryje jedna postranní lišta, takže návštěvník s 1152 klidně může mít pro stránku k dispozici menší šířku, než jiný návštěvník s 1024.
Neměl by snad být problém udělat rozložení webu, které bude v "plus mínus 200 pixelů" vypadat pořád stejně dobře.
Sebasti
Profil *
Joker
Ano dám na Vaši radu, ale teď mě trápí to, že obrazek se v FF vůbec nezobrazí, když použiju IE a z hhd otevřu tu stránku, tak vše jde správně, ale když se na ni podívám přes FifeFox na internetu, tak pozadí neni. A když to otevřu ve FF z hdd, tak je obrázek posunutý.
(vice: wanted.czweb.org/Blogy/problem.JPG)
pro přehlednost přidávám ještě výpis z CSS souboru
body
{
/* background: url('images/back_.jpg'); */
background-position: right;
height: 99%;
margin: 0;
padding: 0;
line-height: 150%;
text-align: center;
}

(důvod proč to nemůžu otestovat na internetu pomací IE, je ten, že ve škole jej máme zablokovaný)
Sebasti
Profil *
Přemýšlel jsem na tím, proč načtení pozadí nefunguje a napadlo mě pár věcí:
- obrázek je moc velký, takže se nestačí natáhnou během provádění scriptu
- je to celé špatně napsané, celý tisk tagu body by tam být neměl, místo toho přistoupit přímo ke stylu, něco jako:
document.getElementById('body').style.background-image.url = obrazek; Ale to nefunguje, možná je to tím, že jsem nepochopil přistupování k objektu dokument.

Prosím, někoho o radu, začínám chytat deprese... :(
Toto téma je uzamčeno. Odpověď nelze zaslat.