Autor | Zpráva | ||
---|---|---|---|
Kry5 Profil |
#1 · Zasláno: 20. 11. 2010, 21:23:43
zdravím,
mám takový problém zkoušel jsem si udělat dvě funkce, které by umožňovali skrývat a zobrazovat jakýkoli element na stránce. Trošku na způsob jejich ekvivalentů v jQuery. A nastali dva problémy. První platí pro obě funkce: Mám funkci skryj() function skryj(coSkryj,dobaSkryj) { var pruhlednostSkryj = 1; var pruhlednyFiltrSkryj = 100; var pruhlednostIESkryj; if (!dobaSkryj) { dobaSkryjPrepoc = 0.1; dobaSkryjPrepocIE = 10; } else { dobaSkryjPrepoc = dobaSkryj / 100; } var zmizniInterval = setInterval(function() { pruhlednostIESkryj = "alpha(opacity="+pruhlednyFiltrSkryj+")"; document.getElementById(coSkryj).style.opacity = pruhlednostSkryj; document.getElementById(coSkryj).style.filter = pruhlednostIESkryj; pruhlednostSkryj = pruhlednostSkryj - dobaSkryjPrepoc; pruhlednyFiltr = pruhlednyFiltrSkryj - dobaSkryj; if (pruhlednostSkryj <= 0) { clearInterval(zmizniInterval); document.getElementById(coSkryj).style.display = "none"; return true; } },100); } Kterou volám třeba takto: skryj('zmizni'); Ale jde tam dodat ještě druhý atribut, který pak určuje rychlost skrývání. První atribut je id. Všude vše funguje perfektně, ale kvůli ie jsem tam zkusil dát filter, s dosazenou hodnotou, ale bohužel mi to nefunguje. V konzoli žádný error neni (ani chrome ani ie). Zvýrazněný je vše co se týká filteru. A druhý problém nastává, když mám druhou funkci: function zobraz(coZobraz,dobaZobraz) { var pruhlednostZobraz = 0; var pruhlednyFiltrZobraz = 100; var pruhlednostIEZobraz; if (!dobaZobraz) { dobaZobrazPrepoc = 0.1; dobaZobrazPrepocIE = 10; } else { dobaZobrazPrepoc = dobaSkryj / 100; } document.getElementById(coZobraz).style.display = "block"; var zobrazInterval = setInterval(function() { pruhlednostIEZobraz = "alpha(opacity="+pruhlednyFiltrZobraz+")"; document.getElementById(coZobraz).style.opacity = pruhlednostZobraz; document.getElementById(coZobraz).style.filter = pruhlednostIEZobraz; pruhlednostZobraz = pruhlednostZobraz + dobaZobrazPrepoc; pruhlednyFiltr = pruhlednyFiltrZobraz + dobaZobraz; if (pruhlednostZobraz >= 1) { clearInterval(zobrazInterval); return true; } },100); } Je skoro shodná, akorát pár upravenejch hodnot, ale bohužel jsem nemohl ještě vyzkoušet její funkčnost, protože mi to hlásí: Cannot read property 'style' of null na řádku 65 (zvýrazněn). V HTML volám: zobraz('zobraz'); A níže mám: <div id="zobraz" style="display:none">Já nejsem a zobrazim se!</div> Takže id je dobře. Napadlo mě, že by to neexistovalo kvůli display: none, ale někde jinde to nevadí. Fakt nevim. Díky za pomoc |
||
_es Profil |
#2 · Zasláno: 21. 11. 2010, 18:01:26
Kry5:
„Prosím. Nejde o složitý dotaz, ale já na to prostě nemůžu přijít :-).“ Asi sa nikomu nechce zložito analyzovať, kde asi bude chyba v takom chaotickom kóde s takým zmäteným popisom. To čakáš, že tu majú všetci v mozgu implementovaný interpréter JS a nejakým jasnovideckým spôsobom si domyslia zvyšok (HTML, CSS)? „Cannot read property 'style' of null“ V čase spustenia toho kódu neexistuje element s takým id .
|
||
Časová prodleva: 13 let
|
0