Autor Zpráva
midlan
Profil
Zdravím.

Píšu si teď svojí vlastní obrázkovou kalerii v JavaScriptu (s jQuery). Zatím funguje ve všech prohlížečích kromě IE7. Při otevírání druhého obrázku (myslím to tak že už jste si jeden obrázek prohlédli a zavřeli a teď otevíráte druhý) zůstane v tom bílém divu (#jsgalery-core) pouze obrázek indikující načítání obrázku.

Živá stránka: tady.
JS zdroj: tady.

Náhledy obrázků spustíte kliknutím na odkaz "odkaz" na stránce vlevo. Každý obrázek je jiného druhu (první obrázek místní malý, druhý místní velký, třetí externí). Obrázky se zavírají kliknutím na opacity pozadí.

Ještě doplním jak spustit režim IE7 (dost pochybuji že ho někdo ze zdejšího osazenstva ještě má :D): spustit internet explorer 8 nebo 9, zmáčknout F12 a nahoře v řádce nabídek je: režim prohlížeče, z vysouvacího menu vyberte IE7, stránka se sama reloadne.
peta
Profil
http://mydlofous.borec.cz/galerka.html
kliknutim na "odkaz" nahore v textu se mi zobrazil obrazek dtwo studio a tim cely program skoncil. ani tlacitko pro zavreni. Nebo aspon se nic nedeje. FF5. Totez dela IE9.
Ha, po dlouhem zkouseni se mi podarilo obrazek zavrit. Musi se kliknout do sede plochy. Coz je u druheho obrazku trosku problem, muse se odrolovat.
Ve FF5 i IE9 program funguje bez problemu, vsechny 3 obrazy funguji, jak jsem popsal. Totez ve vsech rezimech na F12 - IE7, IE8, IE9.
midlan
Profil
peta:
Ha, po dlouhem zkouseni se mi podarilo obrazek zavrit. Musi se kliknout do sede plochy.
už v původním příspěvku jsem psal:
midlan:
Obrázky se zavírají kliknutím na opacity pozadí.

kliknutim na "odkaz" nahore v textu se mi zobrazil obrazek dtwo studio a tim cely program skoncil. ani tlacitko pro zavreni. Nebo aspon se nic nedeje. FF5. Totez dela IE9.
Tohle je zatím zkušební verze, ovládací prvky doplním déle. Popsané chování je správné.

V původním příspěvku jsem to napsal špatně... Chyba spočívá v tom že pokud si prohlédnu obrázek a zavřu ho a poté otevřu zas ten samý zůstane tam místo obrázku jen ten loading-bar (točící se šipky). Nově jsem také zjistil že chybu nedělá jenom IE7 ale i IE8.

Děkuji za další rady
peta
Profil
midlan: Jak uz jsem psal, nedela mi to ani jeden z prohlizecu ani po opakovanem kliknuti.
midlan
Profil
to je dost zvláštní, jenom kvůli tomuhle jsem nainstaloval historické windows xp do virtuální ho PC a nainstaloval IE7 a dělá to v něm takže to není tím režimem. Já snad udělám video...
midlan
Profil
tak jsem to natočil to video :)
www.youtube.com/watch?v=cny2t4UX_hM
Chamurappi
Profil
Reaguji na midlana:
Ještě doplním jak spustit režim IE7 (dost pochybuji že ho někdo ze zdejšího osazenstva ještě má :D)
Má. A dokonce i docela dobře víme, jak se přepínají režimy.
Problém pozoruji i v Exploreru 7, i ve Firefoxu 4.

Nejprve nastavuješ src, pak teprve zpracování události onload. Pokud je obrázek už v keši, k onloadu dojde dříve, než na něj stihneš začít číhat. Známý problém.
midlan
Profil
Chamurappi:
tak jsem prohodil src a onload a vypadá to že to funguje :) Nebo jsi to myslel jinak?

edit: mohl bys mi ještě prosím vysvětlit proč to musí být takhle? Podle mojí teorie jakmile nastavím obrázku src tak se ihned začne načítat a tudíž podruhé už je v cache a než se stihne nastavit událost .load tak už je obrázek v podstatě načtený a událost se neprovede. Myslím si to správně? :)
Chamurappi
Profil
Reaguji na midlana:
Myslím si to správně? :)
Ano, to jsem se snažil vysvětlit v příspěvku #7 i v odkázané diskusi.
midlan
Profil
Chamurappi:
děkuju :) A ještě poslední dotaz: jaktože tomu prvnímu obrázku to nevadí? Je sice vložený přes .html() ale to by nemělo mít vliv ne?

edit: přidávám kód pro lepší orientaci

    $("#jsgalery-core").html("<img src=\"images/loading.gif\" alt=\"loading bar\" />");
    
    $("#jsgalery-core img").load(function(){
      $("#jsgalery-core").css({
        "width":($(this).width()+10),
        "top":function(){
          if($("#jsgalery-bg").height()>$("#jsgalery-core").height()) {
            return ($(window).scrollTop()+(($("#jsgalery-bg").height()-$("#jsgalery-core").height())/2));
          }
          else {
            return $(window).scrollTop();
          }
        }
      });
    });

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