@openui5/sap.ui.core
Version:
OpenUI5 Core Library sap.ui.core
61 lines (51 loc) • 1.61 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(["sap/ui/thirdparty/jquery", "sap/ui/dom/getOwnerWindow"], function(jQuery, domGetOwnerWindow) {
"use strict";
/**
* This module provides the {@link jQuery#rect} API.
*
* @namespace
* @name module:sap/ui/dom/jquery/rect
* @public
* @since 1.58
*/
/**
* Returns a rectangle describing the current visual positioning of the first DOM object in the collection
* (or <code>null</code> if no element was given).
*
* @return {object} An object with left, top, width and height
* @public
* @name jQuery#rect
* @author SAP SE
* @since 0.9.0
* @function
* @requires module:sap/ui/dom/jquery/rect
*/
var fnRect = function rect() {
var oDomRef = this.get(0);
if (oDomRef) {
// this should be available in all 'modern browsers'
if (oDomRef.getBoundingClientRect) {
var oClientRect = oDomRef.getBoundingClientRect();
var oRect = { top : oClientRect.top,
left : oClientRect.left,
width : oClientRect.right - oClientRect.left,
height : oClientRect.bottom - oClientRect.top };
var oWnd = domGetOwnerWindow(oDomRef);
oRect.left += jQuery(oWnd).scrollLeft();
oRect.top += jQuery(oWnd).scrollTop();
return oRect;
} else {
// IE6 and older; avoid crashing and give some hardcoded size
return { top : 10, left : 10, width : oDomRef.offsetWidth, height : oDomRef.offsetHeight };
}
}
return null;
};
jQuery.fn.rect = fnRect;
return jQuery;
});