Mootools DragDropper: Mootools Drag n Drop Frage

Hi, die Frage richtet sich an die Mootools Experten. Ich nutze die Mootools Drag.Move-Funktion um ein Element ziehbar, also *draggable* zu machen.
Der Container, auf dem das Element gezogen wird, ist ein gedachtes Raster. Gedacht deshalb, weil es in keinster Weise als Raster umgesetzt werden soll/wurde.

Das Element, das auf dem Container gezogen wird, soll am Ende des Ziehvorganges dann in ein gedachtes Rasterfeld *einschnappen*. Bisher habe ich das mit der Eigenschaft "grid" gelöst. Das gezogene Element hüpft springt also immer in Zehnerschritten (grid-size ist variabel) und am Ende des Ziehvorganges steht es natürlich auch genau im Raster. Wie während des Ziehens. Perfekt!

Was  ich aber nun möchte: Während des Ziehens finde ich das grid nervig. Bei großer Grid-Size sind die Sprünge zu groß. Ich hätte es lieber so: Beim Ziehen ist das grid nicht vorhanden, beende ich das Ziehen, springt das Element in das am nächsten dafür geeignete Rasterfeld.

Ungefähr verstanden, was ich meine? Gibts da für ne Lösung?

DragDropper

  1. Hi,

    Ungefähr verstanden, was ich meine? Gibts da für ne Lösung?

    Ja, ungefähr schon. Mir würden spontan die Funktionen beforeStart, drag und complete einfallen, mit denen du rumspielen könntest:

      
    var myDrag = new Drag('myDraggable', {  
        onbeforeStart: function(el){  
            ...  
        },  
        onDrag: function(el){  
            ...  
        },  
        onComplete: function(el){  
            el.removeClass('dragging');  
        }  
    });  
    
    

    Ungetestet würde ich vermuten, dass du beim Draggen den Wert für grid verändern kannst (dann über this.options.grid = 123).
    Genaueres wirst du aber sicher hier erfahren:
    http://mootools.net/docs/more/Drag/Drag
    http://groups.google.com/group/mootools-users

    Gruß,
    berlinsurfer

    --
    Science flies you to the moon.
    Religion flies you into buildings.
    selfcode: ie:{ fl:| br:^ va:? ls:< fo:{ rl:( n4:{ ss:} de:[ js:} ch:{ sh:) mo:? zu:)