Search and Top Navigation
#3078 closed bug (worksforme)
Opened July 09, 2008 08:31PM UTC
Closed September 16, 2008 10:44AM UTC
Last modified October 11, 2012 09:15PM UTC
Containment dimensions calculation bug in msie 7
| Reported by: | tjerkw@gmail.com | Owned by: | paul |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | ui.draggable | Version: | 1.5.1 |
| Keywords: | containment fix position dimension ie7 | Cc: | |
| Blocked by: | Blocking: |
Description
When using a contianment with the draggable plugin like this:
var me=this;
var onchange=function(e) { me.onChange(e); };
var options={
axis:"y", opacity:0.6, containment:this.getDayNode(),
start:function(e) { me.widget.currentDraggedHandle=me;onchange(e); },
stop:function(e) { me.widget.currentDraggedHandle=null;me.updateUI(true);onchange(e); },
drag:onchange,
snap:"div.timepointHandle.handleInDay"+this.t.dayOfWeek+".handleInGroup"+this.groupUi.group.id,
snapMode:"outer",
snapTolerance:3
};
this.node.draggable(options);
Then you have a problem if there are enough element above the containment element. (be sure to have some tables and divs above the contianment).
A have a solution to the jquery.draggable plugin:
I changed the following code:
if(!(/^(document|window|parent)$/).test(o.containment)) {
var jQ=$(o.containment);
var ce = jQ[0];
var co = jQ.offset();
this.containment = [
co.left+(parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.relative.left - this.offset.parent.left,
co.top+(parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.relative.top - this.offset.parent.top,
co.left+Math.max(ce.scrollWidth,ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.relative.left - this.offset.parent.left - this.helperProportions.width - this.margins.left - (parseInt(this.element.css("marginRight"),10) || 0),
co.top+Math.max(ce.scrollHeight,ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.relative.top - this.offset.parent.top - this.helperProportions.height - this.margins.top - (parseInt(this.element.css("marginBottom"),10) || 0)
];
}
To the following code (requires the dimensions plugin)
if(!(/^(document|window|parent)$/).test(o.containment)) {
var jQ=$(o.containment);
var ce = jQ[0];
var co = jQ.offset();
this.containment = [
co.left,
co.top, co.left+jQ.width()-this.element.width(),
co.top+jQ.height()-this.element.height()
];
}
Attachments (0)
Change History (3)
Changed August 17, 2008 09:56AM UTC by comment:1
| milestone: | → TDB |
|---|
Changed September 16, 2008 10:44AM UTC by comment:2
| resolution: | → worksforme |
|---|---|
| status: | new → closed |
I wasn't able to reproduce the issue. Could you produce a test page for me if it still happens? Thanks, Paul
Changed October 11, 2012 09:15PM UTC by comment:3
| milestone: | TBD |
|---|
Milestone TBD deleted