Autor Zpráva
veltrusk
Profil *
Lze nějakým způsobem změnit pozici pozadí div1 po najetí na div2?

Obrázek pro ilustraci:

http://stuff.michalveltrusky.com/div.png

Tzn., jakmile bych najel myší na kteroukoliv část v prvním červeném rámečku (skládajícího se z div1 a div2) změnila by se pozice pozadí div1 tak, aby situace vypadala jako v druhém rámečku (tzn. div2 nezměněn, u div1 pouze pozice pozadí). Samozřejmě by to šlo jednoduše tím způsobem, že by se fotografie s textem "BLABLA" dala do jednoho divu, tím pádem by ale v druhé části pozadí musela být celá fotografie znovu, což je dalších cca 150 KB navíc.

Díky.
Sir Tom
Profil
veltrusk:
Nejdříve vytvoř 2 CSS styly (2 třídy) (např.: .stylePozadi a .stylePozadi2) - jeden takový, jako je výchozí stav; a druhý, kde je posunuté pozadí - fígl je v tom, že u div1 bude měnit třídu podle pozice kurzoru. U elementu, který se má měnit (asi div1) přidej atribut id="meniciDiv".
Pak za pomoci JavaScriptu - u elementů, u kterých chceš, aby při najetí myší na ně, se něco stalo přidej JS událost (atribut): onmouseover="necoSeStane() onmouseout="necoSeStane()"
Jakmile uživatel najede na element s událostí onmouseover, vykoná se funkce "necoSeStane()". Jakmile uživatel odjede myšítkem z elementu, stane vrátí se výchozí stav,
<script type="text/javascript">
function necoSeStane(){
 if(document.getElementById("meniciDiv").className=="stylePozadi"){ //pokud element s id "meniciDiv" má třídu "stylePozadi"
  document.getElementById("meniciDiv").className = "stylePozadi2"; //změníme mu třídu (s jiným stylem a tedy i s jiným vzhledem)
 }else{
  document.getElementById("meniciDiv").className = "stylePozadi"; //v opačném případě element dostane výchozí třídu
 }
}
</script>
jenikkozak
Profil
veltrusk:
Vytvoř si div, který bude obsahovat obrázek s těmi panďuláky (jako prvek <img>) a na pozadí bude mít jako obrázek to, co máš označené jako „pozadí div1“. Při najetí na div se vyvolá pseudotřída :hover, při které změníš pozici obrázku na pozadí.

V podstatě ani ten div nepotřebuješ, pozadí můžeš nastavit obrázku <img>, kterému přidáš spodní okraj (padding) tak velký, jako má být část toho obrázku na pozadí, která se má zobrazit. Javascript ani dvě třídy nepotřebuješ.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0