2012-03-27 17 views

Antwort

2

Das Problem ist, dass wenn Sie Koordinaten angeben, sie absolute Positionen sind.

Es könnte eine bessere Art und Weise sein, aber man kann den Versatz der Eltern immer erhalten und diese Offsets zu Ihrer Eindämmung hinzufügen Koordinaten:

$(function() { 

    var ox = $("#container img").parent().offset().left; 
    var oy = $("#container img").parent().offset().top; 

    $("img").draggable({ 
     containment: [-99+ox, -119+oy, ox, oy], 
     scroll: false 
    }); 

}); 

Demo: http://jsfiddle.net/DqdRK/

+0

Großer Dank Sehr geehrte! – anosim

+0

Wie haben Sie die -99 und die -119 berechnet? – nmsdvid

+1

@nmsdvid: Die Bildbreite beträgt 400x300 und das div ist 300x180, für einen Unterschied von 100x120. Dann habe ich ein Pixel für die Breite der Grenze subtrahiert. Technisch, um die Grenze zu berücksichtigen, sollte es auch zu den anderen Parametern hinzufügen: 'containment: [-99 + ox, -119 + oy, ox + 1, oy + 1]' –

0

Ihr Problem, dass Sie ist‘ Das Img-Tag kann in der zweiten Geige gezogen werden. Ich nehme an, Sie möchten, dass der Benutzer das Bild um den grünen Bereich ziehen kann. Versuchen Sie stattdessen, ziehbares auf das div anzuwenden. (Geige: http://jsfiddle.net/ZXu2w/1/)

+0

Ich habe meine Lösung gefunden: http://jsfiddle.net/DqdRK/ – anosim

+0

Es scheint, dass ich Ihr Endziel missverstanden habe. Ich freue mich, dass Sie eine Lösung gefunden haben. – Jlange

Verwandte Themen