X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmisc%2Fdisplace.js;h=9192fdb3a1ca46061e969d76c6ed1943d638771f;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hp=890548f92f334241d59f739eb512eb91c0da085f;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/misc/displace.js b/web/core/misc/displace.js index 890548f92..9192fdb3a 100644 --- a/web/core/misc/displace.js +++ b/web/core/misc/displace.js @@ -13,57 +13,6 @@ left: 0 }; - Drupal.behaviors.drupalDisplace = { - attach: function attach() { - if (this.displaceProcessed) { - return; - } - this.displaceProcessed = true; - - $(window).on('resize.drupalDisplace', debounce(displace, 200)); - } - }; - - function displace(broadcast) { - offsets = Drupal.displace.offsets = calculateOffsets(); - if (typeof broadcast === 'undefined' || broadcast) { - $(document).trigger('drupalViewportOffsetChange', offsets); - } - return offsets; - } - - function calculateOffsets() { - return { - top: calculateOffset('top'), - right: calculateOffset('right'), - bottom: calculateOffset('bottom'), - left: calculateOffset('left') - }; - } - - function calculateOffset(edge) { - var edgeOffset = 0; - var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']'); - var n = displacingElements.length; - for (var i = 0; i < n; i++) { - var el = displacingElements[i]; - - if (el.style.display === 'none') { - continue; - } - - var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10); - - if (isNaN(displacement)) { - displacement = getRawOffset(el, edge); - } - - edgeOffset = Math.max(edgeOffset, displacement); - } - - return edgeOffset; - } - function getRawOffset(el, edge) { var $el = $(el); var documentElement = document.documentElement; @@ -97,6 +46,58 @@ return displacement; } + function calculateOffset(edge) { + var edgeOffset = 0; + var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']'); + var n = displacingElements.length; + for (var i = 0; i < n; i++) { + var el = displacingElements[i]; + + if (el.style.display === 'none') { + continue; + } + + var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10); + + if (isNaN(displacement)) { + displacement = getRawOffset(el, edge); + } + + edgeOffset = Math.max(edgeOffset, displacement); + } + + return edgeOffset; + } + + function calculateOffsets() { + return { + top: calculateOffset('top'), + right: calculateOffset('right'), + bottom: calculateOffset('bottom'), + left: calculateOffset('left') + }; + } + + function displace(broadcast) { + offsets = calculateOffsets(); + Drupal.displace.offsets = offsets; + if (typeof broadcast === 'undefined' || broadcast) { + $(document).trigger('drupalViewportOffsetChange', offsets); + } + return offsets; + } + + Drupal.behaviors.drupalDisplace = { + attach: function attach() { + if (this.displaceProcessed) { + return; + } + this.displaceProcessed = true; + + $(window).on('resize.drupalDisplace', debounce(displace, 200)); + } + }; + Drupal.displace = displace; $.extend(Drupal.displace, { offsets: offsets,