Autor Zpráva
4ever
Profil
Mám takový script, který mění velikost obrázku na určitou velikost. Musím ji nejdříve vypočítat v JS a pak to nastavuji, při události onload obrázku:

$(that).get(0).width = size;


Poté když najedu myší na obrázek (událost onmouseover), zavolám funkci zoom(this). A tam přidělím třídu zoom_in.

Bastavuji to buď na 125%, nebo na zkoušku zkouším 100%.

  img.zoom_in { width:100%; height:100%; } 
  img.zoom_out { width:auto; height:auto; }


V obou případech se šířka nezmění vůbec a výška se změní extrémně (cca 300%). Tak se chci zeptat jak to správně udělat, abych mohl nejdříve javascriptem změnit napevno velikost na vypočítaný rozměr, a pak to měnit do zoomu pomocí třídy nebo nějak jinak.
WMPopi
Profil
4ever:
těch 100% hádám nebude 100% velikosti toho obrázku, ale jeho nadřazeného prvku..
4ever
Profil
Udělal jsem takovou ukázku jak to má být, ale nejsem si jistý, zda se mi povedlo tam dát vše jak má být protože mi to nedělá tu samou chybu jako na svém pc. A použil jsem na to obrázky s jiným rozměrem, ale jde o to, že obrázek se musí nejdříve zmenšit na určitou velikost, kteou vypočítává setImages() na onload obrázku.

http://jsfiddle.net/Uynsx/2/
http://jsfiddle.net/5mfbM/4/

Onmouseover spouští zoom_in() fnc.

WMPopi:
To by neměl být nadřazený prvek. Funkce se volá když přejedu myší přes obrázek, takže přes this. Někdo mi to vysvětloval, ale já moc nechápu smysl té věty: "inline css overrides css rules, so height is getting set by css, but doesn't match your scripted inline height" a hlavně nenacházím to řešení, správné nastavení šířky a výšky, tak aby bylo možné to zase vrátit do původního stavu.
4ever
Profil
WMPopi:
Měl si pravdu. Čím to tedy je, že se nastavuje šířka toho nadřazeného prvku a ne toho obrázku?

A nevíš jak zjistit pozici toho obrázku od horního kraje obrazovky?

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