Autor | Zpráva | ||
---|---|---|---|
1Pupik1989 Profil |
#1 · Zasláno: 10. 5. 2011, 15:45:22
Opět zdravím a otravuji s nakopnutím. Po té co jste mě pomohli s generátorem mapy, jsem dodělal samotnou mapu v PHP + Ajaxu. Nyní jsem jí chtěl rozšířit o posun myší, ale za boha nemůžu nic pořádného vymyslet. Dokonce Drag&drop plugin jsem si udělal (funguje).
První možnost jsem vymyslel, že při pohybu bych musel hlídat pohyb o určité pixely (velikosti pole) a potom podle toho přidávat celou tabulku nebo sloupec či řádek. Jenomže jsem nedokázal udělat, že pokud se třeba na ose X pohnu o více jak 50 pixelů, zavolá se nějaká funkce. Ona se tedy zavolá, ale s každým pixelem navíc se volá znovu a znovu. Přitom to bude určitě primitivní věc jako vždy, ale já na to jentak nepřijdu. Durhá možnost byla načíst celou tabulku z SQL, ale to mi přijde zbytečně náročné. Ví někdo, má nápad či zkušenost? Uvítám každou radu. Díky těm, co odpoví. |
||
Marek88 Profil |
#2 · Zasláno: 11. 5. 2011, 00:52:29
Pokud dobře chápu v čem je problém, tak si při "zakliknutí" ulož souřadnice (třeba do proměnných puvodniX a puvodniY). Při pohybu myší potom kontroluj, o kolik se aktuální souřadnice liší od těch původních. Pokud je to více než o 50px v nějakém směru, tak zavoláš funkci a navíc od příslušné původní hodnoty odečteš nebo přičteš 50px (záleží na směru posunutí). Tím zajistíš, aby se ti funkce volala jenom jednou a to vždy po posunutí myší o více než 50px.
|
||
1Pupik1989 Profil |
#3 · Zasláno: 11. 5. 2011, 15:51:49
Jak jsem psal, je to bude prosté a prostě bych na to sám nepřišel. Vyzkouším a uvidím.
Děkuji za odpověď. |
||
1Pupik1989 Profil |
#4 · Zasláno: 12. 5. 2011, 14:37:34
No, tak jsem to nakonec vyřešil tak, že porovnávám pozici myši v mouseover s pozicí myši v mousemove. Určím směr pohybu a pokud je hodnota v proměnné měnší než rozdíl posunu myši, pak k ní přičtu hodnotu width buňky td. Přidávání do tabulky už mám hotové, akorát ještě budu muset celou tabulku nejspíš posouvat o velikost jedné buňky v tabulce.
Nemá někdo nějaký nápad, jak to elegantněji vyřešit? Řeším to v Jquery + Ajax. |
||
Časová prodleva: 13 let
|
0