Ik maak gebruik van RaphaelJS en de FreeTransform-plugin. Ik heb allerlei elementen die ik kan verslepen en verschalen. Op het moment dat ik aan het verslepen ben wil ik een callback-functie aanroepen. Op internet vind ik een aantal voorbeelden die ik geimplementeerd heb, zo heb ik bijvoorbeeld onderstaande code:
Het probleem is nu dat als ik versleep, de handles een rare positie krijgen.
Als ik de regel met 'el.drag()' weghaal dan blijven de handles wel op de goede plaats staan.
Fiddle-voorbeeld: http://jsfiddle.net/4x73N/6/
Komt dit doordat ik eerste freeTransform() aanroep en vervolgens 'el.drag()' waardoor er feitelijk 2 drag-functies op het element staan? Zo ja, hoe kan ik dan afvangen of ik aan het verslepen ben?
Edit: Het bleek dus inderdaad om de 2 drag-functies te gaan. Ik kan wel een callback-functie van de FreeTransform-plugin gebruiken maar die roept hem om een of andere reden niet elke keer aan. Momenteel kan ik om mijn probleem heen werken met de reguliere mouseup/down functies...
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| var paper = Raphael('floor'); var el = paper.image('http://blog.knibbdesign.com/wp-content/uploads/2011/11/NAlexander-Chair-Folding2.jpeg', 50, 50, 360, 360); var ft = paper.freeTransform(el); var start = function () { this.ox = this.attr("x"); this.oy = this.attr("y"); }, move = function (dx, dy) { this.attr({x: this.ox + dx, y: this.oy + dy}); console.log('Am i moving?'); }, up = function () { }; el.drag(move, start, up); |
Het probleem is nu dat als ik versleep, de handles een rare positie krijgen.
Als ik de regel met 'el.drag()' weghaal dan blijven de handles wel op de goede plaats staan.
Fiddle-voorbeeld: http://jsfiddle.net/4x73N/6/
Komt dit doordat ik eerste freeTransform() aanroep en vervolgens 'el.drag()' waardoor er feitelijk 2 drag-functies op het element staan? Zo ja, hoe kan ik dan afvangen of ik aan het verslepen ben?
Edit: Het bleek dus inderdaad om de 2 drag-functies te gaan. Ik kan wel een callback-functie van de FreeTransform-plugin gebruiken maar die roept hem om een of andere reden niet elke keer aan. Momenteel kan ik om mijn probleem heen werken met de reguliere mouseup/down functies...
[ Voor 10% gewijzigd door robg1984 op 13-05-2013 21:10 ]