Autor Zpráva
DanaStepkova
Profil
Na internetové stránky mateřského centra Ratolest http://www.ratolest.ic.cz/
ukládám obrázky dětí, které nakreslily v našem kroužku kreslení Pastelky. Obrázky vždy vyfotím na kameru, stáhnu do počítače, kde je upravuji v AdobePhotoShop a případně dělám i ořezy, tudíž má každý obrázek jinou velikost. Na stránce jsou umístěny náhledy a já bych potřebovala, aby se obrázek po kliknutí na náhled otevřel do nového okna ve své původní velikosti, pokud je menší než rozměr obrazovky, případně aby se automaticky přepočítaly oba jeho rozměry tak, aby se do obrazovky vešel celý.

Na internetu jsem našla článek, kde je popis funkce nabízející zvětšit či upravit obrázek na celou obrazovku.
http://interval.cz/clanek.asp?article=2189

Bohužel,tak jak ta funkce je napsána mi to nevyhovuje a pokoušela jsem se ji upravit k obrazu svému, ale programování moc nerozumím a tak jsem tam nasekala nějaké syntaktické chyby a něco ani upravit neumím a touto cestou bych chtěla požádat o radu.

Vůbec si nevím rady, jak funkci upravit tak, aby se vyvolala při kliknutí na náhled obrázku, a obrázek, který se následně má načíst do nového okna byl tedy parametrem této funkce, a aby se nové okno svou velikostí přizpůsobilo původní či upravené velikosti otevíraného obrázku.
K otevírání obrázku používám tento mechanismus

<a href="vytvarka/pastelky/lenicka/ptacek_kolicek_2strana.jpg" onclick="window.open(this.href,'_blank','left=0,top=0');return false">
<img src="vytvarka/pastelky/lenicka/ptacek_kolicek_2strana_small.jpg" xthumbnail-orig-image="vytvarka/pastelky/lenicka/ptacek_kolicek_2stran a.jpg" border="2"></a>

Takže se otevře okno s aktuální velikostí okna a v něm je obrázek, ale s neupravenými rozměry,
takže pokud má někdo menší rozlišení vidí ho jen část. Neumístila jsem tam posuvníky, protože je to stejně strašné, když člověk nemá možnost vidět ten obrázek celý, ale posouvat si ho.

tady uvádím kus funkce s mými úpravami
function FitImage(MyObj,ViewWidth,ViewHeight)
{ // funkce p&oslash;epo&egrave;ítá nové rozm&igrave;ry dle prostoru v okn&igrave; klienta
var ImgScale = OrigW/OrigH; // pom&igrave;r stran p&ugrave;vodního obrázku
var ViewScale = ViewWidth/ViewHeight; // pom&igrave;r stran okna klienta
MyObj.removeAttribute('width'); // preventivn&igrave; odebrat atribut width
MyObj.removeAttribute('height'); // preventivn&igrave; odebrat atribut height

tuto část jsem přidala, ale nefunguje to s ní
if (OrigW<ViewWidth) and (OrigH<ViewHeight)
{// pokud jsou oba rozmery obrazku mensi nez rozmery obrazovky, zachovat automaticky jejich puvodni rozmery kvuli kvalite zobrazeni na obrazovce
Set Orig()}
else
pokud tam teď zadám obrázek s menšími rozměry než jsou rozměry obrazovky, objeví se ve své původní velikost, pokud má obrázek některý z rozměrů větší než rozměry obrazovky else se již neprovádí a obrázek se otevře ve svých původních rozměrech a nevejde se na obrazovku, proč?

if (ImgScale>ViewScale)
{ // je možné natáhnout na ší&oslash;ku
MyObj.width=ViewWidth; // nastavit ší&oslash;ku obrázku na dostupnou ší&oslash;ku okna
MyObj.height=ViewWidth/ImgScale; // nastavit vy&oslash;ku obrázku podle pomeru
ImgScale, aby nedoslo ke zkresleni obrazku
}
else
{ // je možné natáhnout na výšku
MyObj.height=ViewHeight; // nastavit výšku obrázku na dostupnou výšku okna
MyObj.width=ViewHeight*ImgScale; // nastavit ší&oslash;ku obrázku podle pomeru
ImgScale, aby nedoslo ke zkresleni obrazku }

document.title= ImgObj.src + ' (' + ImgObj.width + 'x' + ImgObj.height + ')'; // do titulku nastavit zdroj obrázku a aktuální rozm&igrave;ry
}
Meldo
Profil
A nestacilo by, keby sa obrazok otvaral do noveho okna pomocou target="_blank" a obr. by mal standardne rozmer 800x600? Preco takto zlozito?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0