Autor Zpráva
GUSTO
Profil *
Dobry den,
neviete mi poradit preco moj script nefunguje?

css: #box {width:100px; height:100px; background: blue; opacity:1}
<script>
var box = document.getElementById("box");
function doBox()
{
setInterval(function() {
box.style.opacity -= .02;

},20);


}

doBox();
</script>

Chcem docielit toho aby sa postupne stracal box.
Diky.
mckay
Profil
GUSTO:
Pro lepší orientaci diskutujících, kteří se ti rozhodnou pomoci, vkládej prosím kód mezi. .
Jan Tvrdík
Profil
GUSTO:
Ve style jsou jenom inline styly. Takže je potřeba použít něco takového:
<style>
	#box {
		width: 100px;
		height: 100px;
		background-color: blue;
		opacity: 0.7;
	}
</style>
 
<div id="box">Lorem ipsum dolor sit amet.</div>

<script> 
var box = document.getElementById("box");
box.style.opacity = getStyle("box", "opacity");
setInterval(function() {
	box.style.opacity -= 0.01; 
}, 10); 


// @link http://www.quirksmode.org/dom/getstyles.html
function getStyle(el,styleProp)
{
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}
</script>
_es
Profil
GUSTO:
JavaScriptom sa dajú takýmto spôsobom čítať len tie vlastnosti, ktoré boli tak aj nastavené.
Teda najprv musíš nastaviť opacity na 1 (v JS kóde).
Nemáš nijako ošetrené, čo sa má stať, ak to klesne na nulu.
Takto by to išlo do mínus nekonečna.
A nemusí to fungovať pre všetky prehliadače, tie riešenia si však už môžeš nájsť.
Jednoducho si overíš prehliadače, kde to funguje napríklad týmto kódom v adresovom riadku:
javascript:document.body.style.opacity =1; setInterval(function() {document.body.style.opacity -= .02;},50);void 0;
GUSTO
Profil *
_es:
Co to znamena "void 0" ?


Jan Tvrdík

Co tym myslis inline styly?

_es:

JavaScriptom sa dajú takýmto spôsobom čítať len tie vlastnosti, ktoré boli tak aj nastavené.
Teda najprv musíš nastaviť opacity na 1 (v JS kóde).

Tebe tiez nerozumiem, ved v css mam definovane ze ten box ma opacity 1, a cez javascript som si vytvoril jednoduchu funkciu ktora berie opacity az kym nebude vidno box.
_es
Profil
GUSTO:
Co to znamena "void 0" ?
Výsledkom toho výrazu je JavaScriptová hodnota undefined, posledný výraz musí mať takú hodnotu, aby nedošlo k prepísaniu aktuálneho dokumentu.

ved v css mam definovane ze ten box ma opacity 1
Áno, no to je tá zvláštnosť, že to musíš zadať aj v JS, inak tá vlastnosť nemá číselnú hodnotu. Alebo použiť inline zadanie štýlu.

Jan Tvrdík
Co tym myslis inline styly?
Myslí tým:
<div id="box" style="opacity:1">Lorem ipsum dolor sit amet.</div>

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: