Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4130

Show
Ignore:
Timestamp:
04/01/06 23:16:10 (2 years ago)
Author:
madrobby
Message:

script.aculo.us: Add Draggable object as third parameter to snap, fixes #4074 [thx mdaines]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/scriptaculous/CHANGELOG

    r4128 r4130  
    11*SVN* 
     2 
     3* Add Draggable object as third parameter to snap, fixes #4074 [thx mdaines] 
    24 
    35* Fix an IE flicker with SlideUp/SlideDown, fixes #3774, [thx sbbowers] 
  • spinoffs/scriptaculous/src/dragdrop.js

    r4127 r4130  
    415415    if(this.options.snap) { 
    416416      if(typeof this.options.snap == 'function') { 
    417         p = this.options.snap(p[0],p[1]); 
     417        p = this.options.snap(p[0],p[1],this); 
    418418      } else { 
    419419      if(this.options.snap instanceof Array) { 
  • spinoffs/scriptaculous/test/functional/dragdrop6_test.html

    r3038 r4130  
    1010  <style type="text/css" media="screen"> 
    1111    div.box { background: green; width:100px; height:100px } 
     12    div.box-container { background: yellow; width:200px; height:200px } 
    1213  </style> 
    1314</head> 
     
    3334</div> 
    3435 
     36<div class="box-container"> 
     37  <div id="box-grid-procedural-gets-draggable" class="box"> 
     38    snap: procedural (e.g. constrain to parent element) 
     39  </div> 
     40</div> 
     41 
    3542<script type="text/javascript" language="javascript" charset="utf-8"> 
    3643// <![CDATA[ 
     
    4653    revert:true 
    4754  }); 
     55  new Draggable('box-grid-procedural-gets-draggable',{ 
     56    snap: function(x,y,draggable) { 
     57      function constrain(n, lower, upper) { 
     58        if (n > upper) return upper; 
     59        else if (n < lower) return lower; 
     60        else return n; 
     61      } 
     62      
     63      element_dimensions = Element.getDimensions(draggable.element); 
     64      parent_dimensions = Element.getDimensions(draggable.element.parentNode); 
     65      return[ 
     66        constrain(x, 0, parent_dimensions.width - element_dimensions.width), 
     67        constrain(y, 0, parent_dimensions.height - element_dimensions.height)]; 
     68    }, 
     69    revert:true 
     70  }); 
    4871// ]]> 
    4972</script>