Autor Zpráva
kubatt
Profil
č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
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
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
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
Tady se řešilo přesouvání nějakých objektů.Ty budeš přesouvat obrázek, což je prakticky to samé.
kubatt
Profil
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
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
:-D dík ale jak sem psal v scriptu potřebuju to scrollovat a ne posouvat :( ale i tak díky :)
TomasJ
Profil
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
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
kubatt:
na scrollování myší, kolečkem nebo šipkama na klávesnici, nastav overflow:auto; nebo overflow:scroll; v CSS - Návod
Witiko
Profil
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
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
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

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

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: