Autor Zpráva
Pavlínka
Profil
Chci udělat na svém webu malinké okýnko s obsahem které si uživatel může chytit myší v určitém bodu a přesunout kam jen chce v okně prohlížeče.
samozřejmě nemyslím klasické otevírání okna ale jakési JS okénko chovající podobně jako ohno jakéhokoli programu.

asi to hloupě popisuju ale nevím jak to lépe vysvětlit ... a stím mě tíží i to jak se ptát google aby jsem toto vůbec našla :D

snad alespoň někdo ví a pochopí co hledám :D
Ikki
Profil
Neměla bys nějakou ukázku? Jediný co mi to připomíná v jednom bodě je chování marquee, ale jinak si asi moc nedokážu představit co vlastně chceš :D
Radek9
Profil
Pavlínka:
Hledej drag & drop.
DarkMeni
Profil
Třeba jQuery UI Dialog

Ale chce to načíst knihovny jQuery a jQuery UI.
Keeehi
Profil
Živá ukázka
Je to velmi primitivní a při rychlejším pohybu myší to občas ten element někde zapomene ale možná že to pro tebe bude dostatečně dobré. Výhoda je, že to nepotřebuje žádnou knihovnu.
Radek9
Profil
Keeehi:
To jde opravit tím, že ten mousemove event dáš na document místo na element. Taky je dobré v tom handleru volat preventDefault, aby se neoznačoval text.
Živá ukázka
Keeehi
Profil
Radek9:
To je taky pravda.

Ještě se k tomu dá přidat podpora pro dotykové displeje a pro odscrollovanou stránku. Živá ukázka

Na těch mobilních zařízeních by bylo ještě potřeba vypnout scrollování když se objekt přesouvá, ale do toho se mi už moc nechce.
Pavlínka
Profil
Keeehi:
děkuji za každou radu :)

teď se trápím pouze s tím, jak volat více oken pod stejnojmeným divem aniž bych musela duplikovat funkci pod jiným ID

funkce funguje pouze na první div...


Keeehi:
Ještě se k tomu dá přidat podpora pro dotykové displeje
super úvaha to mi vůbec nedošlo...
Keeehi
Profil
Pavlínka:
Tak základem je, že elementy nebudeš identifikovat pomocí id, jelikož id by mělo být na stránce vždy unikátní. Vhodné je na to použít třeba třídu. Pak stačí jen pomocí té třídy elementy vybrat, v cyklu je projít a pro každý z nich zavolat tu funkci. Živá ukázka
IDčka v příkladu používám jen kvůli počátečnímu nastavení rozdílných pozic.
DarkMeni
Profil
Taky jsem na to kouknul a nefungovalo to ve Firefoxu, prej že nezná TouchEvent.

Stačí asi přidat kontrolu, jestli to zná TouchEvent, a když jo, tak až pak se ptát jesti je e instance od TouchEventu.
// oba
if(e instanceof TouchEvent)
// nahradit za
if(typeof TouchEvent != 'undefined' && e instanceof TouchEvent)

Jo a e.preventDefault() v mousemove s neoznačováním textu moc nepomáhá, aspoň 1 písmenko se mi vždy označit podařilo :P
V onmousedown to už pomohlo.

Kdyžtak tady je upraveý kód s podporou pro firefox a přehození e.preventDefaultu do mousedown: Tady
Pavlínka
Profil
Děkuji moc za rady :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0