Autor Zpráva
EcLiPs3
Profil
Zdravím!

Našel jsem script na rozbalení divu:

var i = 0;

function dolu() {

document.getElementById('autor').style.height = i + "px";

if(i >= 200) {
return;
} else {
i++;
i++;
setTimeout("dolu()", 1);
}
 
}


a funguje dobře. Kliknu a div se rozbalí. Ovšem já bych potřeboval, aby se po dalším kliknutí zase zabalil (stejně jako se rozbalil).

Pokouším se o to všemožně už asi 3 hodiny, nevěděl by někdo, jak na to?

Děkuji
Beavis
Profil
EcLiPs3:
Na JakPsátWeb.cz to je, stačí hledat :-)
EcLiPs3
Profil
Hledal jsem výše zmíněné 3 hodiny... nejspíš budu slepej. Myslím, že jsem nic nepřehlédl, ale kouknu ještě jednou...

Přesto si ale myslím, že pro většinu lidí tady by to měla být otázka chviličky... mohl by na to někdo prosím kouknout? V JS se vážně moc nevyznám, děkuju ;)
Beavis
Profil
EcLiPs3:
Asi špatně hledal :-)
_es
Profil
EcLiPs3:
setTimeout("dolu()", 1);
To očakávaš, že ti monitor stihne každú milisekundu niečo vykresliť?
EcLiPs3
Profil
Opraveno, díky.

Ale potřeboval bych to zpětný zabalení... Nevíte někdo, jak na to prosím? Díky
pavuk
Profil
Víme... je to v odkazu kterej ti napsal Beavis ve [#4]
EcLiPs3
Profil
Ne, není. Hledám to od tý doby, co to Beavis napsal, a neni to tam.
Beavis
Profil
EcLiPs3:
<script>
function zobrazSkryj(idecko){
el=document.getElementById(idecko).style; 
el.display=(el.display == 'block')?'none':'block';
}
</script>
<style>
h3 {cursor: pointer; cursor: hand; text-decoration: underline}
.skryvany {display: none}
</style>

...

<h3 onclick="zobrazSkryj('oddil1')">Nadpis</h3>
<div id="oddil1" class="skryvany">
První oddíl: bla bla bla text</div>
<h3 onclick="zobrazSkryj('oddil2')">Nadpis druhého oddílu</h3>
<div id="oddil2" class="skryvany">
Druhý oddíl: bla bla bla text</div>
EcLiPs3
Profil
No jenže to není to, co jsem měl výše. Protože tohle ten div neodkryje plynule, jen to změní display. Já chci, aby se vysunul a zasunul.
_es
Profil
var i = 0, k = -1, v = 200, tk = 50, t;
var el = document.getElementById('autor');
var st = el.style;
el.onclick = function(){
  clearInterval(t);
  k *= -1;
  if(k>0) t = setInterval(hore, tk);
  else t = setInterval(dole, tk);
  function hore(){if(i >= v) clearInterval(t); st.height = (i+=k) + "px"; }
  function dole(){if(i <= 0) clearInterval(t); st.height = (i+=k) + "px"; }
};

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:

0