Autor Zpráva
senior
Profil
Ako napísať meno IMG do CSS stylu? <img src="http://domena.sk/image/vecer.jpg" name="den" ... Obrázok je uložený na inom serveri. Ďakujem za radu.
Chamurappi
Profil
Reaguji na seniora:
Stejně nejasná otázka jako ta druhá. Jaké jméno chceš zapsat a co tím sleduješ?
senior
Profil
Chamurappi:
<img src="http://domena.sk/image/vecer.jpg" name="den" ...
Obrázok môžem uložiť na vlastný server. Potrebujem naviazať JS na name="den". Toto mi nefunduje
img[name="jmeno"] {
  background: url(../img/bg2.jpg) no-repeat center center fixed;
}

alebo to mám zle zapísané v CSS :-(
Chamurappi
Profil
Reaguji na seniora:
Pořád nerozumím. Co a proč chceš psát do CSS?
senior
Profil
Chamurappi:
Ide o to, že som tak chcel vyriešiť umiestnenie reklamy na viac stránok, aby som to nemusel písať na každú stránku. Už ma napadlo, že jednoduchšie to bude cez
<?php include ("reklama.html") ?>
Chamurappi
Profil
Reaguji na seniora:
Gratuluji k vyřešení, ale pořád nechápu, jak souvisí skládání stránek se jménem obrázku…
senior
Profil
Chamurappi:
Obrázky v reklame sa striedajú podobne ako v zmene počasia -
http://diskuse.jakpsatweb.cz/?action=vthread&forum=7&topic=131069
s tým rozdielom, že počasie sa meni raz za kvartál a reklama sa mení každý týždeň. JS je rovnako naviazaný na name obrázku.
shaggy
Profil
senior:
JS je rovnako naviazaný na name obrázku.
A ako to súvisí s tvojou pôvodnou otázkou? Čo to má čo robiť s CSS? Na čo sa nás vlastne pýtaš? V tvojom poslednom príspevku nie je žiadna otázka. Nerozumieme ti. Nedokážeš popísať tvoj problém normálne?
Trejpa
Profil
senior:
Ty chceš měnit obrázek na pozadí pomocí JavaScriptu? Jestli ano, tak měň dotyčnému elementu jednu ze tříd a ve stylu měj uvedeny všechny varianty tříd s obrázky.
jenikkozak
Profil
senior:
s tým rozdielom, že počasie sa meni raz za kvartál a reklama sa mení každý týždeň.
A uživatel, který bude mít stránku otevřenou čtrnáct dní, uvidí pouze jednu reklamu místo dvou. To by bylo špatné.
V tom souboru reklama.html, co ho includuješ, jednou za týden změň adresu obrázku (ručně nebo skriptem běžícím na serveru) a máš pokoj.
senior
Profil
Trejpa:
Áno, chcem meniť obrázok na pozadí pomocou JavaScriptu, ale asi nemám správny script a chcel som upraviť tento JavaScriptu a nefunguje mi to.

/if (document.images) {
 var myDate=new Date()
 var day=myDate.getDate()
 var month=myDate.getMonth()
 var hour=myDate.getHours()
 var obdobi = 0 // zima

     // Zmena dle obdobi:
     
    // Nejprve vypocet obdobi...
     if( (month>2) || ( (month==2) && (day>=21) ) )
         obdobi = 1;
     if( (month>5) || ( (month==5) && (day>=21) ) )
         obdobi = 2;
     if( (month>8) || ( (month==8) && (day>=23) ) )
         obdobi = 3;
     if( (month>11) || ( (month==11) && (day>=21) ) )
         obdobi = 0;
     // ...pote zmena obrazku dle vypocteneho obdobi
     switch( obdobi) {
         case 0: document.images.obdobi.src="img/zima.jpg"; break;
         case 1: document.images.obdobi.src="img/jar.jpg"; break;
         case 2: document.images.obdobi.src="img/leto.jpg"; break;
         case 3: document.images.obdobi.src="img/jesen.jpg"; break;
     }
 } 


Vieš mi prosím nejako poradi a pomôcť? Ďakujem za každú radu.
Trejpa
Profil
senior:
Pokud je to takové jednoduché, tak bude stačit prvku s pozadím dát id, například <div id=pozadie>…</div> a provést drobnou úpravu skriptu:

switch(obdobi) {
case 0: document.getElementById('pozadie').style.backgroundImage="url(img/zima.jpg)"; break;
case 1: document.getElementById('pozadie').style.backgroundImage="url(img/jar.jpg)"; break;
case 2: document.getElementById('pozadie').style.backgroundImage="url(img/leto.jpg)"; break;
case 3: document.getElementById('pozadie').style.backgroundImage="url(img/jesen.jpg)"; break;
}

Ještě zruš nebo změň tu obalovací podmínku a skript dej na konec stránky.
Joker
Profil
Trejpa:
Snazší na údržbu by byl takovýto kód:
var nazevObdobi = ["zima", "jar", "leto", "jesen"];
document.getElementById('pozadie').style.backgroundImage="url("+nazevObdobi[obdobi]+")";
Kdyby se změnilo ID elementu nebo adresář s obrázky, nebude to muset měnit 4x.
senior
Profil
Trejpa, Joker
Vďaka za rady a pomoc. Idem sa pokúsiť to nejako spojazdniť, aj keď nie všetkému rozumiem, napr. „Ještě zruš nebo změň tu obalovací podmínku“. Tento zápis v CSS tomu nebude vadiť?
#top { 
width: 950px; 
height: 180px;
background-image: url(../img/jesen.jpg);
background-repeat: no-repeat;
background-position: center top;
background-color: #00CC00; 
margin: 0; 
} 

Ja potrebujem meniť pozadie iba v záhlaví stránky (#top)
Trejpa
Profil
senior:
nie všetkému rozumiem, napr. ‚Ještě zruš nebo změň tu obalovací podmínku‘.
Aha. Takže podmínka v JavaScriptu se provádí pomocí příkazu if. Ve tvém případě je na začátku kódu (to lomítko, co’s dal před ni, tam být nemá).

Funguje to zjednodušeně takto: if(podmínka){úkol} - když je splněná podmínka, provede se úkol.

Ve svém kódu máš podmínku if (document.images) { … }. Ta znamená: „když jsou na stránce obrázky, tak proveď…“. Ty ale teď nepotřebuješ zjišťovat, zda je na stránce obrázek, ale můžeš (nemusíš) si ověřit, zda je na stránce ten blok, kterému budeš měnit pozadí. Podmínku vyměň za if (document.getElementById('pozadie')) { … }, nebo ji celou i s oběma souvisejícími špičatými závorkami smaž.
senior
Profil
Trejpa:
Už mi z toho šibe, stále mi to nefunguje. Tu je celý kód. Kde mám chybu?

background-image: url(../img/leto2.jpg); = tu môže byť akýkoľvek obrázok lebo script by mal zmeniť obrázok podľa obdobia a je tam iba pre toho, kto má vypnutý JS ... to som si prečítal na nete

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

<style type="text/css">
html, body {
background: url(../img/bg2.jpg) no-repeat center center fixed;
background-color : #00CC00; 
border: 0;
margin: 0;
padding: 0;
}
#top { 
width: 950px; 
height: 180px;
background-image: url(../img/leto2.jpg);
background-repeat: no-repeat;
background-position: center top;
background-color : #00CC00; 
margin: 0; 
}
</style>
</head>
<body>
<div id="top">... tu sa má meniť pozadie ...</div>
<!-- obsah -->
<div id="obsah">... tu bude nejaký obsah ...</div>

<script type="text/javascript">

 var myDate=new Date()
 var day=myDate.getDate()
 var month=myDate.getMonth()
 var hour=myDate.getHours()
 var obdobi = 0 // zima

     // Zmena dle obdobi:
     
    // Nejprve vypocet obdobi...
     if( (month>2) || ( (month==2) && (day>=21) ) )
         obdobi = 1;
     if( (month>5) || ( (month==5) && (day>=21) ) )
         obdobi = 2;
     if( (month>8) || ( (month==8) && (day>=23) ) )
         obdobi = 3;
     if( (month>11) || ( (month==11) && (day>=21) ) )
         obdobi = 0;
     // ...pote zmena obrazku dle vypocteneho obdobi
switch(obdobi) {
case 0: document.getElementById('top').style.backgroundImage="url(img/zima.jpg)"; break;
case 1: document.getElementById('top').style.backgroundImage="url(img/jar.jpg)"; break;
case 2: document.getElementById('top').style.backgroundImage="url(img/leto.jpg)"; break;
case 3: document.getElementById('top').style.backgroundImage="url(img/jesen.jpg)"; break;
}
</script>
</body>
</html>
Chamurappi
Profil
Reaguji na seniora:
Špatná cesta k obrázku?
senior
Profil
Chamurappi:
Určite nie. Ten obrázok na adrese background-image: url(../img/leto2.jpg); sa zobrazí, ale JS ho nezmení.
shaggy
Profil
Chamurappi:
Špatná cesta k obrázku?
senior:
Určite nie.

background-image: url(../img/leto2.jpg);

vs
style.backgroundImage="url(img/zima.jpg)";


Si si istý?
senior
Profil
shaggy:
Skúsim zmeniť v JS
style.backgroundImage="url(img/zima.jpg)";
na
style.backgroundImage="url(../img/zima.jpg)";
ale myslím, že ak by JS fungoval a bola by chyba popisovaná shaggy tak by sa musel zmeniť obrázok na nezobrazený obrázok.

edit: beriem späť svoje tvrdenie a ešte raz sa shaggy ospravedlňujem.
senior
Profil
shaggy:
Klobúk dolu pred tvojim postrehom!!! Vyskúšal som to a ono to funguje. Ešte raz ďakujem za postreh.
senior
Profil
Ďakujem veľmi pekne všetkým za rady a pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0