Autor Zpráva
kabanos
Profil *
Ahoj,
mám na stránce funkci, které ke všem obrázkům na stránce automaticky generuje div s obsahem title každého z obrázků, aby byl u nich stále viditelný a umisťuje ho ke každému z obrázků zjištěním absolutní pozice obrázku.

Funkci mám navázanou na onload a onresize, takže se při změně velikosti okna popisky posunou na nové pozice dle aktuální polohy svých obrázků.

Vše funguje až do chvíle, kdy chci stránku vytisknout. Rozměry tištěné stránky jsou obvykle jiné než ty zobrazované a nedojde při tisku stránky k přepočtu pozic popisků, takže plavou úplně jinde, než jsou jejich obrázky. Jde to nějak vyřešit?

Pro vytvoření popisků jesm použil trochu poupravené funkce z diskuze http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=111528

Díky
joe
Profil
Spíš bych to udělal tak, aby z kódu
<img src="src.jpg" title="Popisek" width="50" height="50">

Jsi dostal takovéhle kód
<div style="display: inline-block; border: 1px solid #ccc; padding: 3px;"><img src="louka.jpg" title="Popisek" width="50" height="50"> <div style="display: inline-block; padding: 3px; margin-top: 3px; background: #bbb; color: #fff">Popisek</div>  </div>


A budeš mít po problémech... nemusíš nikde nic přepočítávat a navíc to bude vypadat pěkně :-)
kabanos
Profil *
Tak nějak by se mi to také líbilo - vložit popisek i obrázek do společného divu a tam si nastylovat, co potřebuju, ale u obrázků mám různě nastaveny marginy a padingy, position a floaty,...takže např. při velkém marginu u obrázku je pak popisek dost daleko a leze už třeba přes jiný obrázek (některé obrázky mají na stránce třeba absolutní pozici). Proto by se mi hodil popisek nad obrázkem a ne vedle něj. Popisek umístěný v pozici 0px,0px každého z obrázků. Přepočet pozice obrázku tento problémek s "marginy a padingy, position, floaty, ..." hravě překonal. Jde to nějak překonat i s tvým řešením?

A jak obalit img tagem div to jsem zatim také mimo:-(

Díky
joe
Profil
Tak "překonat" to můžeš jednoduše, a to tak, že tomu obalovému divu bys nastavil atribut style a class stejný jako má ten obrázek a pak je u obrázku zrušil. Tím by došlo k obalení všech obrázků a vložení do divu, který by měl stejné vlastnosti, jako obrázek. Počítat by bylo dobré i s atributy width a height u obrázku a ty pak dát do stylu tomu divu.

Jak to přímo ale udělat teď nevím, musel bych si s tím nějak hrát a nevím jestli jde v JavaScriptu nějak jednoduše vložit nějaký zvolený element do dalšího elementu a nebo je to složitější tak, že bys musel hledat předka apod.

--

Ke tvému zvolenému řešení, zkus to raději dát do události onbeforeprint, kterou dáš tagu body. A pak následně onafterprint to dáš do původní podoby.

Tyto události používá IE, možná už i Firefox, můžeš to zkusit, nikdy jsem to nepoužil.

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