Autor | Zpráva | ||
---|---|---|---|
kubatt Profil |
#1 · Zasláno: 27. 2. 2011, 21:40:24 · Upravil/a: kubatt
čaute nemáte nějaký script na posun mapy v divu aby nešel mimo div a před div? prostě jak v hrách kde tyto mapy jsou třb trav... ale pokud možno nechci to přes jquery ale pokud nic kromě toho není tak klidně i jquery díky moc ;)
|
||
Witiko Profil |
#2 · Zasláno: 27. 2. 2011, 21:48:03 · Upravil/a: Witiko
kubatt:
Můžeš mít mapu jako obrázek větší, než div a poté jí posouvat pomocí manipulace s css. Tzn. nastavíš pozadí divu pomocí background-image a posunutí obrázku pomocí background-position. To by, pokud jsem tě dobře pochopil, mělo posloužit tvým účelům. |
||
kubatt Profil |
#3 · Zasláno: 27. 2. 2011, 21:50:36
no já to mám jako div :( ale potřeboval bych ten js moc nvm vím že zjistím pozici myši kde sem klik a pak posouvám tam kam jde myš ale nvm jak to udělat přes JS :(
|
||
Witiko Profil |
#4 · Zasláno: 27. 2. 2011, 22:09:57 · Upravil/a: Witiko
kubatt:
No, možná se ti tu někdo nabídne, že ti to celé udělá, ale moc bych na to nespoléhal. Jsme ochotní ti pomoci s konkrétními problémy, nenaservírujeme ti pod nos hotové řešení. "Chytnutí" a "Upuštění" odchytneš na onmouseup a onmousedown eventech, pozici myši budeš zjišťovat při eventu onmousemove z event.mouseX a event.mouseY. Při "Chytnutí" si zaznamenáš souřadnice, při posouvání pak budeš mapu posouvat na základě odchylky od původních souřadnic - tzn. ani nemusíš znát pozici daného divu vůči levému rohu okna. |
||
TomasJ Profil |
#5 · Zasláno: 28. 2. 2011, 10:39:54 · Upravil/a: TomasJ
Tady se řešilo přesouvání nějakých objektů.Ty budeš přesouvat obrázek, což je prakticky to samé.
|
||
kubatt Profil |
#6 · Zasláno: 28. 2. 2011, 15:44:09
udělala takto
//presun_objekt.style. _left = presun_objektX + (nn6 ? udalost.clientX - x : event.clientX - x) + "px"; //presun_objekt.style. _top = presun_objektY + (nn6 ? udalost.clientY - y : event.clientY - y) + "px"; //presun_objekt.scroll(_left,_top); presun_objekt.scrollLeft=_left+"px"; presun_objekt.scrollTop=_top+"px"; return false; // zablokuj udalost ale nějak mi to nechce jít :( neposunuje se to nescrolluje :( nvm nějak mi nefunguje to scrollLeft a Top :( nevíte co tam dát? dík |
||
TomasJ Profil |
#7 · Zasláno: 28. 2. 2011, 16:00:39 · Upravil/a: TomasJ
kubatt:
Máš nastavené na objektu, který chceš posunovat, class="presun_mne" ? Já tuto funkci potřeboval též, takže jsem si to trochu pokrátil pro mé potřeby. Čili scrolluji jeden objekt. Tento kód ti už musí jít. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> .moving{ position:relative; cursor:move; width:100px; height:100px; left:20; border:1px solid #080; background:#cfc; z-index:10; } </style> <script type="text/javascript"> var nn6=document.getElementById&&!document.all,x,y,moveX,moveY,moveClass='moving',moveObj=false; function DropIt(e){moveObj=false;} function MoveIt(e){if(moveObj){moveObj.style.left=moveX+(nn6?e.clientX-x:event.clientX-x)+"px",moveObj.style.top=moveY+(nn6?e.clientY-y:event.clientY-y)+"px";return false;}} function DragIt(e){var obj=nn6?e.target:event.srcElement,top_element=nn6?"HTML":"BODY";while(obj.className!=moveClass&&obj.tagName!=top_element){obj=nn6?obj.parentNode:obj.parentElement;}if(obj.className==moveClass){moveObj=obj,moveX=parseInt(moveObj.style.left+0),moveY=parseInt(moveObj.style.top+0),x=nn6?e.clientX:event.clientX, y=nn6?e.clientY:event.clientY;return false;}} document.onmousedown=DragIt;document.onmousemove=MoveIt;document.onmouseup=DropIt; </script> </head> <body> <div class="moving">Přesuň mne</div> </body> </html> Pro použití jen připíšeš k tomu, co chceš posunovat, tu třídu (tady class="moving"), nastavíš stylování pro objekt s touto třídou a víc tě nemusí zajímat. Je v tom trošku větší bordel, jelikož jsem to chtěl co nejkratší... A nebo tady máš další script, který jen stáhneš a zapíšeš v <head> jeho cestu. Zbytek se dočteš na web. |
||
kubatt Profil |
#8 · Zasláno: 28. 2. 2011, 17:39:09
:-D dík ale jak sem psal v scriptu potřebuju to scrollovat a ne posouvat :( ale i tak díky :)
|
||
TomasJ Profil |
#9 · Zasláno: 28. 2. 2011, 17:44:50
kubatt:
Tady byla řeč o posouvání obrázku (mapy) v divu a nepřetékalo... Koukni sem, místo textu pak dodáš obrázek. Doleva už bys to zvládnout podle předlohy mohl... |
||
kubatt Profil |
#10 · Zasláno: 28. 2. 2011, 19:24:00
ale já to potřebuju myší :( ale nvm jak to tam dosadit pls nenašlo by se něco co by už bylo jako example :-D jen na scrollování
|
||
TomasJ Profil |
#11 · Zasláno: 28. 2. 2011, 19:29:37 · Upravil/a: TomasJ
kubatt:
na scrollování myší, kolečkem nebo šipkama na klávesnici, nastav overflow:auto; nebo overflow:scroll; v CSS - Návod |
||
Witiko Profil |
#12 · Zasláno: 28. 2. 2011, 20:44:00
TomasJ:
Jak už jsem říkal, možná by bylo lepší řešení pomocí background-image a background-position. Jde o čisté řešení a po technické stránce nedochází k posouvání žádného elementu, stejně tak div nepřetéká a obrázkem nelze "posouvat" jinak, než daným drag'n'dropem. |
||
kubatt Profil |
#13 · Zasláno: 28. 2. 2011, 21:04:25
no nevadí asi mě nikdo nepochopil ale navadí já to pak změnil že potřebuji měnit scroll divu tak nevadí ale díky i tak ;)
|
||
Witiko Profil |
#14 · Zasláno: 28. 2. 2011, 21:56:35 · Upravil/a: Witiko
Pokud ti dělá problém se technicky vyjádřit, zkus nakreslit obrázek a poslat ho, často to poví více jak 1000 slov. Já už to takto několikrát udělal. :-)
|
||
kubatt Profil |
#15 · Zasláno: 1. 3. 2011, 15:14:56 · Upravil/a: kubatt
tak sem něco nakreslil to žluté je ten div a to zelené je kam se posune pokud se posune myš ovšem je to pomocí scrollTop a Left |
||
Časová prodleva: 13 let
|
0