Autor Zpráva
Suta
Profil *
Nevíte někdo, jak nastavit u nového okna vyvolaného pomocí window.open, aby se vycentrovalo na střed obrazovky? (např. u jednotlivě otvíraných fotek bez lišt a všech dalších zbytečností, align=center mi nechce fungovat). Díky.
mat
Profil
např.

<a href="#"
onclick="window.open('neco.htm','okno','resizable=no,status=no,scrollb ars=no,width=450,height=400,top=20,left=20'); return false;">

- polohu okna určují top a left - zde tedy nové okno bude 20px od horního okraje a 20px od levého okraje okna prohlížeče.
Suta
Profil *
No jo, to všechno vím. Ale každá fotka může být jinak veliká, nebo můžeš otevřít nějaké okno a to má zase jiné rozměry... Pak bych u každoho objektu musel nastavovat jiné pozice pro top a left!
Potřebuju, aby šlo jedním atributem nastavit, aby se to vystředilo doprostřed obrazovky. Ví někdo?
mat
Profil
já bych to vyřešil tak, jak jsem to udělal na www.optikahavlik.cz/galery.htm - dal jsem novému oknu fixní velikost a umístění a do něj jsem umístil obrázek o takové velikosti, aby se do něj vešel - dejme tomu máš deset obrázků, z nichž největší je 400x300px, udělej si okno o rozměru 500x500px, to dej na střed a do tohoto okna pak umisťuj obrázky - když pak pomocí css ještě umístíš tyhle obrázky na střed nového okna a nastavíš novému oknu nějaké pozadí, vypadá to docela dobře...
petris
Profil
Na vycentrování otvíraných oken používám tenhle skript:


<SCRIPT>
function OpenWokno(sirka,vyska,file,nazev)
{
var posuv="no"
if(sirka>screen.Width) {posuv="yes"; sirka=750};
if(vyska>screen.Height) {posuv="yes"; vyska=500};
var leftpos=screen.Width/2-sirka/2;
var toppos=screen.Height/2-vyska/2;
Okno=window.open('','','width='+sirka+',height='+vyska+',left='+leftpo s+',top='+toppos+',resizable=no,scrollbars='+posuv);
Okno.document.writeln("<html><head>");
Okno.document.writeln("<title>&nbsp;"+nazev+"&nbsp;</title>");
Okno.document.writeln("<body onClick='window.self.close()'>");
Okno.document.writeln("<img src="+file+" border=0 alt=' Click = zavřít okno. '>");
Okno.document.writeln("</body></html>");
}
</SCRIPT>


V kódu stránky pak je:

<a href="javascript: OnClick=OpenWokno(650,488,'ValDiFassa.jpg','Val di Fassa')">......atd..
Suta
Profil *
Díky. Sice mi to nefunguje, protože jsem se k tomu, jak scripty fungují ještě nedostal - a tím tedy tomu cos mi napsal zas až tak nerozumím a nevím co tam mám upravit... Ale až se k JavaScriptu dostanu podrobněji, tak to zkusím. Dík.
Anonymní
Profil *
Když do své stránky nakopíruješ toto mělo by to fungovat (je to pouze upravený kód minulého příspěvku) :


<script>
function OpenWokno(sirka,vyska,file,nazev)
{
var posuv="no"
if(sirka>screen.Width) {posuv="yes"; sirka=750};
if(vyska>screen.Height) {posuv="yes"; vyska=500};
var leftpos=screen.Width/2-sirka/2;
var toppos=screen.Height/2-vyska/2;
Okno=window.open('','','width='+sirka+',height='+vyska+',left='+leftpo s+',top='+toppos+',resizable=no,scrollbars='+posuv);
Okno.document.writeln("<html><head>");
Okno.document.writeln("<title>&nbsp;"+nazev+"&nbsp;</title>");
Okno.document.writeln("<link rel=stylesheet type=text/css href=style.css></head>"); // místo "style.css" zadej cestu k externímu souboru s kaskádovými styly (*.css)
Okno.document.writeln("<body>");
Okno.document.writeln("<img src="+file+" border=0 ><br><center><input type=button onclick='window.close()' class=login value='Zavřít okno'></center>");
Okno.document.writeln("</body></html>");
}
</script>
<a href="javascript: OnClick=OpenWokno(650,488,'obrazek.jpg','Galerie - obrázek 1')">Odkaz na otevření fotky</a>


Odzkoušeno v IE 6.0, Mozilla 5.0, Opera 7.54 - na 100% funguje.

Pozn. : v IE to pod WinXP se ServicePackem 2 blokuje to otvírané okno.
Tomik
Profil
Omlouvám se, zapoměl jsem se přihlásit. Ten Anonim jsem byl já...
petris
Profil
Nevadí, nemusíš to chápat abys to mohl použít, stačí když si tu horní část od <script> až po </script> překopíruješ do hlavičky té oné stránky a potom jednotlivé odkazy, kterými ta okna otvíráš, upravíš podle vzoru dole.

Na vysvětlenou ještě parametry funkce: OpenWokno(šířka obrázku,výška obrázku, 'soubor vč. cesty','pojmenování'). Zkus to, funguje to. Jinak obrázky totiž nevycentruješ.
Tomik
Profil
Ještě jedna chyba :

na 9. řádku
Okno=window.open('','','width='+sirka+',height='+vyska+',left='+leftp o s+',top='+toppos+',resizable=no,scrollbars='+posuv);
musíš změnit na :
Okno=window.open('','','width='+sirka+',height='+vyska+',left='+leftpo s+',top='+toppos+',resizable=no,scrollbars='+posuv);

P.S. chyba je tam, kde je kód ztučněn - je tam mezera navíc.
Tomik
Profil
Nechápu proč, ale pořád mi to do kódu hází mezery. Prostě na tom 9. řádku musí být to LEFTPOS vcelku.
Suta
Profil *
Rozumím. Zkouším to, ale teď se zase nemůžu dostat přes jiný problém, píšu zdroják ve WordPadu, a už mi tam mrcha nechce nic přidat, pořád mi píše že mám zavřít aplikace, že mám málo místa. Ale to s tímto webem nemá nic společného. Až to rozchocím, tak dám vědět, zda to funguje. Zatím...
Tomik
Profil
Restartij Windowsy a zkus to znovu.
habendorf
Profil
Psal jsem to už tady: http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=805&forum= 8&page=-1
Suta
Profil *
Restartovat nepomůže. Je to stará šunka na koleji. Zítra jedu na víkend domů, tak se do toho pustím a vyzkouším. Zatím dík.
Suta
Profil *
Tak jsem doma. Fungovat to funguje, jen nevím, jak je myšleno to zobrazování odkazu uvnitř okna "zavřít okno", protože když je fotka malá, tak se to zobrazí uprostřed toho okna, ale když je větší a zasahuje do toho, tak to tam není???
A dík za předcházející radu.
petris
Profil
Používej na zavírání okna raději ten kód, co jsem napsal 18.11. v 6:41 (už jsem ho opravil :-)), to jest
Okno.document.writeln("<body onClick='window.self.close()'>");
Okno.document.writeln("<img src="+file+" border=0 title=' Click = zavřít okno. '>");

Tímhle se zavře okno kliknutím kamkoliv do něho a předtím při najetí na to upozorní bublina.
Při vší úctě k Tomíkovým úpravám, nápad dávat pod obrázek ještě button mi nepřipadá zrovna elegantní.

Pokud nechceš zavírat okno kliknutím do něj ale pouze křížkem nahoře, tak to bude vypadat takhle:
Okno.document.writeln("<body>");
Okno.document.writeln("<img src="+file+" border=0 title='' ");
Tomik
Profil
Ok, já svůj názor nikomu nevnucuju. Ať si každý vybere.
Suta
Profil
Dík.
Toto téma je uzamčeno. Odpověď nelze zaslat.