Bug Tracker

Ticket #2161: fixedposition.patch

File fixedposition.patch, 1.3 KB (added by scottgonzalez, 14 years 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