diff --git a/source/viewer/domutils.js b/source/viewer/domutils.js index 23a8c14..09821a8 100644 --- a/source/viewer/domutils.js +++ b/source/viewer/domutils.js @@ -3,17 +3,27 @@ OV.GetIntegerFromStyle = function (parameter) return Math.round (parseFloat (parameter)); }; +OV.GetElementExternalWidth = function (style) +{ + let padding = OV.GetIntegerFromStyle (style.paddingLeft) + OV.GetIntegerFromStyle (style.paddingRight); + let border = OV.GetIntegerFromStyle (style.borderLeftWidth) + OV.GetIntegerFromStyle (style.borderRightWidth); + let margin = OV.GetIntegerFromStyle (style.marginLeft) + OV.GetIntegerFromStyle (style.marginRight); + return padding + border + margin; +}; + +OV.GetElementExternalHeight = function (style) +{ + let padding = OV.GetIntegerFromStyle (style.paddingTop) + OV.GetIntegerFromStyle (style.paddingBottom); + let border = OV.GetIntegerFromStyle (style.borderTopWidth) + OV.GetIntegerFromStyle (style.borderBottomWidth); + let margin = OV.GetIntegerFromStyle (style.marginTop) + OV.GetIntegerFromStyle (style.marginBottom); + return padding + border + margin; +}; + OV.GetInnerDimensions = function (element, outerWidth, outerHeight) { let style = getComputedStyle (element); - let width = outerWidth - - OV.GetIntegerFromStyle (style.borderLeftWidth) - OV.GetIntegerFromStyle (style.borderRightWidth) - - OV.GetIntegerFromStyle (style.marginLeft) - OV.GetIntegerFromStyle (style.marginRight) - - OV.GetIntegerFromStyle (style.paddingLeft) - OV.GetIntegerFromStyle (style.paddingRight); - let height = outerHeight - - OV.GetIntegerFromStyle (style.borderTopWidth) - OV.GetIntegerFromStyle (style.borderBottomWidth) - - OV.GetIntegerFromStyle (style.marginTop) - OV.GetIntegerFromStyle (style.marginBottom) - - OV.GetIntegerFromStyle (style.paddingTop) - OV.GetIntegerFromStyle (style.paddingBottom); + let width = outerWidth - OV.GetElementExternalWidth (style); + let height = outerHeight - OV.GetElementExternalHeight (style); return { width : width, height : height @@ -58,7 +68,7 @@ OV.InsertDomElementAfter = function (newElement, existingElement) OV.ShowDomElement = function (element) { - element.style.display = ''; + element.style.display = 'block'; }; OV.HideDomElement = function (element) @@ -71,12 +81,6 @@ OV.IsDomElementVisible = function (element) return element.style.display !== 'none'; }; -OV.GetDomElementOuterHeight = function (element) -{ - let style = getComputedStyle (element); - return element.offsetHeight + OV.GetIntegerFromStyle (style.marginTop) + OV.GetIntegerFromStyle (style.marginBottom); -}; - OV.SetDomElementWidth = function (element, width) { element.style.width = width.toString () + 'px'; @@ -87,6 +91,30 @@ OV.SetDomElementHeight = function (element, height) element.style.height = height.toString () + 'px'; }; +OV.GetDomElementOuterWidth = function (element) +{ + let style = getComputedStyle (element); + return element.offsetWidth + OV.GetIntegerFromStyle (style.marginLeft) + OV.GetIntegerFromStyle (style.marginRight); +}; + +OV.GetDomElementOuterHeight = function (element) +{ + let style = getComputedStyle (element); + return element.offsetHeight + OV.GetIntegerFromStyle (style.marginTop) + OV.GetIntegerFromStyle (style.marginBottom); +}; + +OV.SetDomElementOuterWidth = function (element, width) +{ + let style = getComputedStyle (element); + OV.SetDomElementWidth (element, width - OV.GetElementExternalWidth (style)); +}; + +OV.SetDomElementOuterHeight = function (element, height) +{ + let style = getComputedStyle (element); + OV.SetDomElementHeight (element, height - OV.GetElementExternalHeight (style)); +}; + OV.CreateDiv = function (className, innerHTML) { return OV.CreateDomElement ('div', className, innerHTML); diff --git a/website/index.html b/website/index.html index 33996d0..420cdb8 100644 --- a/website/index.html +++ b/website/index.html @@ -132,19 +132,19 @@