Ciao,
Oggi stavo faccendo proprio quello che avevi bisogno.
Bastava guardare nella documentazione del script.aculo (vedi functional test: dragdrop6.html)
codice:
<div class="padre" id="padre" style="background: url(griglia.jpg) no-repeat top left; height:482px; width:373px; border:1px solid black; margin:0px; padding:0px;">
<div id="box1" class="box1" style="z-index:1000;width:150px;height:150px;background:#bbf;">
Trascinami
</div>
<script type="text/javascript" language="javascript" charset="utf-8">
// <![CDATA[
new Draggable('box1',{
snap: function(x,y,draggable) {
function constrain(n, lower, upper) {
if (n > upper) return upper;
else if (n < lower) return lower;
else return n;
}
element_dimensions = Element.getDimensions(draggable.element);
parent_dimensions = Element.getDimensions(draggable.element.parentNode);
return[
constrain(x, 0, parent_dimensions.width - element_dimensions.width),
constrain(y, 0, parent_dimensions.height - element_dimensions.height)];
},
revert:true
});
// ]]>
</script>