Autor Zpráva
1Pupik1989
Profil
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
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
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
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.

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:

0