Autor | Zpráva | ||
---|---|---|---|
veronika Profil * |
#1 · Zasláno: 23. 3. 2012, 21:36:15
Ahoj po dlouhém hledání jsem našla tento script který částečně vyhovuje tomu co potřebuji.
<a href='#' onclick='ukaz(event, "pokus.php")'><img src='ukaz.png'></a> <script> function ukaz(event, url){ return window.open(url,"detail","width=300,height=200,left="+event.screenX+",top="+event.screenY); } </script> No a já bych potřebovala aby se mi místo nového okna zobrazil na tom samém místě po kliknutí DIV s nějakým textem, v tom samém okně. Děkuji moc za rady, protože já JS moc nerozumím a chci ho použít pouze pro tuhle příležitost. |
||
Fisir Profil |
#2 · Zasláno: 24. 3. 2012, 10:23:06
Reaguji na veroniku [#1]:
Budeš potřebovat změnit styly tak, aby byl daný <div> viditelný. Pak do něj nejspíše AJAXem dostat nějaká data.
|
||
veronika Profil * |
#3 · Zasláno: 24. 3. 2012, 12:41:28
Já to mám teď udělaný že odkaz mám na tu samou stránku a pomocí podmínky IF kontroluji zda byl stisknut pravě tento odkaz a na základě toho se mi zobrazí ten můj DIV. Akorát že ho právě umím akorat absolutně pozicovat a chtěla bych ho mít zobrazený jako je to v tom kódu výše, čili u toho odkazu. To by mělo jít i bez AJAXU ne?
|
||
Fisir Profil |
#4 · Zasláno: 24. 3. 2012, 12:50:43
Reaguji na veroniku [#3]:
Víš vůbec na co je AJAX? AJAXem docílíš toho, aby se do <div>u načetla nějaká další stránka bez znovunačtení té původní. Můžeš to udělat nějak takto:<script> function zobrazNacti(co,adresa){ var xmlhttp; if (window.XMLHttpRequest) { // Kód pro IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // Kód pro IE6 a IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(co).innerHTML=xmlhttp.responseText; document.getElementById(co).setAttribute("style","display: block"); } } xmlhttp.open("GET",adresa,true); xmlhttp.send(); } </script> <a href="javascript: zobrazNacti('box','http://www.google.com')">Ukaž</a> <div id="box"> </div> |
||
veronika Profil * |
#5 · Zasláno: 24. 3. 2012, 13:30:40
AJAX vim na co je ale já nepotřebuju načítat nějakou jinou stránku, já chci jenom informativní DIV který se mi zobrazí tam kde kliknu a to mi ani ten tvůj kód neuděla a stejně mi ta tvá ukázka nefunguje.
|
||
suvel Profil |
#6 · Zasláno: 24. 3. 2012, 18:28:14
Dá se to udělat třeba tak, že si kamkoli do stránky vložíš prázdný div:
<div id="sem"></div> window.document.getElementById("sem").style.top = pozicey+"px"; window.document.getElementById("sem").style.left = pozicex+"px"; window.document.getElementById("sem").innerHTML = "ahoj, právě bylo kliknuto"; Na zjištění pozice, kam se kliklo, (aby to fungovalo ve všech prohlížečích) je tady spousta skriptů... Snad to pomůže. |
||
Radek9 Profil |
Fisir:
„Víš vůbec na co je AJAX?“ Evidentně ano. Popisovala přesně to, co chce. Na to AJAX vskutku vůbec není potřeba. Příště lépe čti. Jinak, ještě drobná kritika: Řádek 12: Tohle by někde mohlo blbnout (např. ve starších verzích prohlížečů), lepší je využít přímo objekt style, který je defaultně na každém elementu. veronika: Jednoduše řečeno: DIVům defaultně nastavit display: none; position: absolute; a po kliku na odkaz nastavit danému divu display: block; a popřípadě si z eventu vytáhnout pozici kliku. Pokud budeš chvíli hledat, najdeš plno hotových řešení.
|
||
Fisir Profil |
#8 · Zasláno: 25. 3. 2012, 19:17:27
Reaguji na Radka9 [#7]:
Ve veroniky kódu bylo otevírané nové okno s další stránkou. Z toho jsem usoudil, že tam chce mít další stránku. |
||
_es Profil |
#9 · Zasláno: 25. 3. 2012, 19:20:07
Radek9:
„Řádek 12: Tohle by někde mohlo blbnout (např. ve starších verzích prohlížečů), lepší je využít přímo objekt style na každem elementu.“ Alebo použiť vlastnosť className. |
||
Radek9 Profil |
#10 · Zasláno: 26. 3. 2012, 17:19:49
Fisir:
Cituji: „aby se mi místo nového okna zobrazil na tom samém místě po kliknutí DIV s nějakým textem“ Takže stěžejním problémem je to „na tom samém místě“. _es: Pokud jde jen o display, tak je to podle mě trošku zbytečnost. |
||
Someone Profil |
#11 · Zasláno: 26. 3. 2012, 19:30:10
veronika:
Něco takového? |
||
veronika Profil * |
#12 · Zasláno: 27. 3. 2012, 19:09:47
Someone:
Jo něco takového jsem měla na mysli. Ještě to zkusím upravit aby se mi to otevíralo u kliku (cursoru). |
||
Časová prodleva: 5 dní
|
|||
veronika Profil * |
#13 · Zasláno: 1. 4. 2012, 10:30:20
Someone:
Mohu mít na tebe ještě dotaz? Když na stránce roluji dolu, kde budu mít teprve odkaz na zobrazení toho divu a clony, tak se mi pak ta clona a div zobrazí úplně nahoře a ne přes celou obrazovku je jakoby useklá, jestli mi rozumíš. Jde to udělat aby se to vždy zobrazovalo na aktuální pozici podle toho kde na stránce jsem? |
||
Someone Profil |
#14 · Zasláno: 1. 4. 2012, 10:44:17
Cloně nastav místo position absolute, position fixed
|
||
veronika Profil * |
#15 · Zasláno: 1. 4. 2012, 10:47:35
Someone:
Je to to samé |
||
Someone Profil |
#16 · Zasláno: 1. 4. 2012, 10:51:07
|
||
veronika Profil * |
#17 · Zasláno: 1. 4. 2012, 10:52:42 · Upravil/a: veronika
A ještě jedna otázka, mohu ten tvůj příklad použít i třeba u odkazu:
<a href='zbozi.php?akce=pridej'><img src='images/kosik.png' onclick=\"zmena('boxkosik')\"></a> Děkuji [#16] Someone Clona je sice přes celé ale ten Div je nahoře, a měl by být asi uprostřed té stránky aby nebyl useklí |
||
Someone Profil |
#18 · Zasláno: 1. 4. 2012, 10:55:53
Jde o to, že ty kikneš na odkaz, provede se script a aktualizace způsobena odkazem div zase skryje.
|
||
veronika Profil * |
#19 · Zasláno: 1. 4. 2012, 11:00:26 · Upravil/a: veronika
|
||
Časová prodleva: 12 let
|
0