Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
6a4c889f31
commit
94363c1d0e
151
js/ui/mxgraph/src/js/util/mxDivResizer.js
Normal file
151
js/ui/mxgraph/src/js/util/mxDivResizer.js
Normal file
|
@ -0,0 +1,151 @@
|
|||
/**
|
||||
* Copyright (c) 2006-2015, JGraph Ltd
|
||||
* Copyright (c) 2006-2015, Gaudenz Alder
|
||||
*/
|
||||
/**
|
||||
* Class: mxDivResizer
|
||||
*
|
||||
* Maintains the size of a div element in Internet Explorer. This is a
|
||||
* workaround for the right and bottom style being ignored in IE.
|
||||
*
|
||||
* If you need a div to cover the scrollwidth and -height of a document,
|
||||
* then you can use this class as follows:
|
||||
*
|
||||
* (code)
|
||||
* var resizer = new mxDivResizer(background);
|
||||
* resizer.getDocumentHeight = function()
|
||||
* {
|
||||
* return document.body.scrollHeight;
|
||||
* }
|
||||
* resizer.getDocumentWidth = function()
|
||||
* {
|
||||
* return document.body.scrollWidth;
|
||||
* }
|
||||
* resizer.resize();
|
||||
* (end)
|
||||
*
|
||||
* Constructor: mxDivResizer
|
||||
*
|
||||
* Constructs an object that maintains the size of a div
|
||||
* element when the window is being resized. This is only
|
||||
* required for Internet Explorer as it ignores the respective
|
||||
* stylesheet information for DIV elements.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* div - Reference to the DOM node whose size should be maintained.
|
||||
* container - Optional Container that contains the div. Default is the
|
||||
* window.
|
||||
*/
|
||||
function mxDivResizer(div, container)
|
||||
{
|
||||
if (div.nodeName.toLowerCase() == 'div')
|
||||
{
|
||||
if (container == null)
|
||||
{
|
||||
container = window;
|
||||
}
|
||||
|
||||
this.div = div;
|
||||
var style = mxUtils.getCurrentStyle(div);
|
||||
|
||||
if (style != null)
|
||||
{
|
||||
this.resizeWidth = style.width == 'auto';
|
||||
this.resizeHeight = style.height == 'auto';
|
||||
}
|
||||
|
||||
mxEvent.addListener(container, 'resize',
|
||||
mxUtils.bind(this, function(evt)
|
||||
{
|
||||
if (!this.handlingResize)
|
||||
{
|
||||
this.handlingResize = true;
|
||||
this.resize();
|
||||
this.handlingResize = false;
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
this.resize();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: resizeWidth
|
||||
*
|
||||
* Boolean specifying if the width should be updated.
|
||||
*/
|
||||
mxDivResizer.prototype.resizeWidth = true;
|
||||
|
||||
/**
|
||||
* Function: resizeHeight
|
||||
*
|
||||
* Boolean specifying if the height should be updated.
|
||||
*/
|
||||
mxDivResizer.prototype.resizeHeight = true;
|
||||
|
||||
/**
|
||||
* Function: handlingResize
|
||||
*
|
||||
* Boolean specifying if the width should be updated.
|
||||
*/
|
||||
mxDivResizer.prototype.handlingResize = false;
|
||||
|
||||
/**
|
||||
* Function: resize
|
||||
*
|
||||
* Updates the style of the DIV after the window has been resized.
|
||||
*/
|
||||
mxDivResizer.prototype.resize = function()
|
||||
{
|
||||
var w = this.getDocumentWidth();
|
||||
var h = this.getDocumentHeight();
|
||||
|
||||
var l = parseInt(this.div.style.left);
|
||||
var r = parseInt(this.div.style.right);
|
||||
var t = parseInt(this.div.style.top);
|
||||
var b = parseInt(this.div.style.bottom);
|
||||
|
||||
if (this.resizeWidth &&
|
||||
!isNaN(l) &&
|
||||
!isNaN(r) &&
|
||||
l >= 0 &&
|
||||
r >= 0 &&
|
||||
w - r - l > 0)
|
||||
{
|
||||
this.div.style.width = (w - r - l)+'px';
|
||||
}
|
||||
|
||||
if (this.resizeHeight &&
|
||||
!isNaN(t) &&
|
||||
!isNaN(b) &&
|
||||
t >= 0 &&
|
||||
b >= 0 &&
|
||||
h - t - b > 0)
|
||||
{
|
||||
this.div.style.height = (h - t - b)+'px';
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getDocumentWidth
|
||||
*
|
||||
* Hook for subclassers to return the width of the document (without
|
||||
* scrollbars).
|
||||
*/
|
||||
mxDivResizer.prototype.getDocumentWidth = function()
|
||||
{
|
||||
return document.body.clientWidth;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getDocumentHeight
|
||||
*
|
||||
* Hook for subclassers to return the height of the document (without
|
||||
* scrollbars).
|
||||
*/
|
||||
mxDivResizer.prototype.getDocumentHeight = function()
|
||||
{
|
||||
return document.body.clientHeight;
|
||||
};
|
Loading…
Reference in New Issue
Block a user