Autor Zpráva
Joan
Profil
Dobrý večer,
podařilo se mi vytvořit fotogalerii už hodně se blížící mým představám :-) . Kliknutím na miniaturu se otevře velký obrázek, klikáním na další náhledy se otevřou v témže místě další zvětšeniny a kliknutím naň se zase zavře, toto jsem chtěla.
Ale:

1) zjistila jsem, že potřebuji úpravu ve skriptu pro zobrazení v IE 6-7 (IE8 už je v pořádku).

V tomto skriptu mám pouze definici jména prohlížeče, nikoliv už verze

var kam = document.getElementById("umisteni");  //rodic pro snimek
var snimek = document.createElement("img");   //do neho se otevira zvetsenina
kam.appendChild(snimek); 
var nahled = document.getElementById("zatoka-galerie").getElementsByTagName("a");  /*kde se nachazeji nahledy*/
for (var i=0; i<nahled.length; i++)   //nahled.length = pocet nahledu
{
nahled[i].onclick = function()
{
snimek.src = this.href;
snimek.style.position = "absolute";   //bez POSITION se obrazek otevre úplně pod galerii a přes náhledy se mi ho nepodařilo napozicovat
snimek.style.display = "block";   //bez nej se neotevre po zavreni dalsi nahled
snimek.style.marginLeft = "30%";
if (navigator.appName == "Microsoft Internet Explorer")
{
snimek.style.marginLeft = "-54%";
}
snimek.style.marginTop = "60px";
snimek.style.padding = "6px";
snimek.style.backgroundColor = "#ffffaa";
snimek.style.border = "2px solid green";
return false;
}
}  

snimek.onclick = function()   //zavreni velkeho obrazku onclickem
{
snimek.style.display = "none";
snimek.style.padding = 0;
snimek.style.border = 0;
}
snimek.src = this.href; 


protože
if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>=6))
{
snimek.style.marginLeft = "-54%";
}


pozicování pro IE úplně zruší. Nenapadá mě bohužel, kde mám v nastavení verze chybu.

2) mám na webu zatím celkem 13 fotogalerií a podaří se mi z nich udělat ne méně než tři skupiny se stejným ID - viz označený kousíček kódu - protože se ty skupiny nějakým způsobem liší.

Doporučíte mi
a) vytvořit tři externí JS soubory lišící se jen a pouze vyznačeným ID?
b) udělat externí JS pro skupinu s nejvíce galeriemi a zbývajícím vepsat skript přímo do těla?
c) je nějaké elegantnější řešení?

3) externí skript jsem musela vložit až nakonec dokumentu, protože když byl v hlavičce, konzola mi oznámila je "var kam is null" a nehnula jsem s tím. Víc by se mi líbil tj. byl přehlednější v hlavičce, jde tato chyba prosím nějak opravit?

4) na localhostu mi v Opeře 10.01 blbne zavírání velkých fotek, kdy po klikání na zvětšeninu se mi zobrazí v mém rozlišení 1024 x 600px třeba jen kus fotky, takto:



Pokud zvětšený obrázek byl jen částečně mimo okno prohlížeče, zavření proběhlo v pořádku. Pokud se vlezl do okna celý, dopadlo to takto zle. Čím to může být?

5) malinká žádost: v galerii "1.dovolená" mám velké fotky v rozlišení 450 x 338px, v "2.dovolená" ve VGA rozlišení. I na mém stolní PC s 1280 x 1024px mi ty VGA fotky připadají obludně velké. Vám taky?

Moc děkuji předem za váš čas, hezký večer :-)
_es
Profil
Joan:
Vyskúšaj to spraviť bez detekcie prehliadača, napríklad nastavovať iné hodnoty pre CSS vlastnosti alebo použiť iné CSS vlastnosti, zmeniť poradie nastavenia a pod.
Pre takéto jednoduché veci by to malo ísť.
Joan
Profil
_es:
Se musím pochválit :-) . Vzala jsem si Tvé doporučení k srdci a podařilo se mi spoustou pokusů a omylů přijít na jiné nakódování tak úspěšně, že žádnou berličku ohledně druhu a verze prohlížeče už nepotřebuji, ba dokonce se výrazně zlepšila změna velikosti stránky, protože velký obrázek už nevylézá ze stránky, "cvičí" společně s celou fotogalerií, což považuji za velikánské plus. Taky zavírání zvětšenin v Opeře mi už neblbne. Člověk by nevěřil, jak málo stačilo: v podstatě přehodit div, do kterého se otevírá velký obrázek, z místa před galerií ho strčit hned za ni. Ale než jsem na to přišla, SSD disk v mém noťásku mě musel asi hodně proklínat při té spoustě malých souborů, které ukládám :)

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: