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 = calculateOffsets();
- Drupal.displace.offsets = offsets;
- 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;
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,