Opened 7 years ago

Closed 7 years ago

Last modified 5 years ago

#6181 closed bug (fixed)

Draggable: issue with containment on position:fixed elements

Reported by: gethinw Owned by:
Priority: minor Milestone:
Component: ui.draggable Version: 1.8.5
Keywords: Cc:
Blocked by: Blocking:

Description

If an element is position:fixed and made draggable with containment:'window' the containment isn't applied correctly when the page is scrolled.

See http://jsfiddle.net/JVn7P/

Change History (5)

comment:1 Changed 7 years ago by jfremy

The following fix did it for me (I did not test thoroughly). In _setContainment, use the following code:

if(o.containment == 'document' || o.containment == 'window') this.containment = [
	o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
	o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
	o.containment == 'document' ? 0 : $(window).scrollLeft() + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
	o.containment == 'document' ? 0 : $(window).scrollTop() + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
];

When containment is "window", use scrollTop and scrollLeft to shift the containment window accordingly.

The problem also manifests itself with position:absolute. If you take the fiddle sample and switch from fixed to absolute, then if you move the block down, then scroll and then try to move the block again, it will jump up.

comment:3 Changed 7 years ago by Scott González

Summary: issue with draggable containment on position:fixed elementsDraggable: issue with containment on position:fixed elements

comment:4 Changed 7 years ago by Jean-Francois Remy

Resolution: fixed
Status: newclosed

Draggable: Handle scrolled windows. Fixes #6181 - Draggable: issue with containment on position:fixed elements.

Changeset: e01664a3820c185636a3fe7099e93e68091d24fd

comment:5 Changed 5 years ago by Scott González

Milestone: TBD

Milestone TBD deleted

Note: See TracTickets for help on using tickets.