Bug Tracker

Ticket #2161: fixedposition.patch

File fixedposition.patch, 1.3 kB (added by scott.gonzalez, 1 year ago)
  • ui.draggable.js

     
    9494            var elementPosition = { left: this.elementOffset.left - this.offsetParentOffset.left, top: this.elementOffset.top - this.offsetParentOffset.top }; 
    9595            this._pageX = e.pageX; this._pageY = e.pageY; 
    9696            this.clickOffset = { left: e.pageX - this.elementOffset.left, top: e.pageY - this.elementOffset.top }; 
     97            this.helperFixed = this.helper.css('position') == 'fixed'; 
    9798            var r = this.helper.css('position') == 'relative'; 
    9899 
    99100            //Generate the original position 
     
    148149        drag: function(e) { 
    149150 
    150151            //Compute the helpers position 
    151             this.position = { top: e.pageY - this.offset.top, left: e.pageX - this.offset.left }; 
     152            this.position = { 
     153                top: e.pageY - this.offset.top - ( this.helperFixed ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : 0 ), 
     154                left: e.pageX - this.offset.left - ( this.helperFixed ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : 0 ) 
     155            }; 
    152156            this.positionAbs = { left: e.pageX - this.clickOffset.left, top: e.pageY - this.clickOffset.top }; 
    153157 
    154158            //Call plugins and callbacks