diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-05-24 07:13:04 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-05-24 07:13:04 +0000 |
commit | 24b02d36b9812a536693fa126c3fa08a147440af (patch) | |
tree | 4310c800dfbc88bf6fda9ac6d20ff26d95b0f045 /misc | |
parent | 2c39bc8e04c38547a0d3054ba1e196323d69a7df (diff) | |
download | brdo-24b02d36b9812a536693fa126c3fa08a147440af.tar.gz brdo-24b02d36b9812a536693fa126c3fa08a147440af.tar.bz2 |
- Rollback of #787940.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/displace.js | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/misc/displace.js b/misc/displace.js deleted file mode 100644 index 261d8accf..000000000 --- a/misc/displace.js +++ /dev/null @@ -1,115 +0,0 @@ -// $Id$ -(function ($) { - -/** - * Provides a generic method to position elements fixed to the viewport. - * - * Fixed positioning (CSS declaration position:fixed) is done relative to the - * viewport. This makes it hard to position multiple fixed positioned element - * relative to each other (e.g. multiple toolbars should come after each other, - * not on top of each other). - * - * To position an element fixed at the top of the viewport add the class - * "displace-top" to that element, and to position it to the bottom of the view- - * port add the class "displace-bottom". - * - * When a browser doesn't support position:fixed (like IE6) the element gets - * positioned absolutely by default, but this can be overridden by using the - * "displace-unsupported" class. - */ - -/** - * Attaches the displace behavior. - */ -Drupal.behaviors.displace = { - attach: function (context, settings) { - // Test for position:fixed support. - if (!Drupal.positionFixedSupported()) { - $(document.documentElement).addClass('displace-unsupported'); - } - - $(document.body).once('displace', function () { - $(window).bind('resize.drupal-displace', function () { - Drupal.displace.clearCache(); - - $(document.body).css({ - paddingTop: Drupal.displace.getDisplacement('top'), - paddingBottom: Drupal.displace.getDisplacement('bottom') - }); - }); - }); - - Drupal.displace.clearCache(true); - $(window).triggerHandler('resize'); - } -}; - -/** - * The displace object. - */ -Drupal.displace = Drupal.displace || {}; - -Drupal.displace.elements = []; -Drupal.displace.displacement = []; - -/** - * Get all displaced elements of given region. - * - * @param region - * Region name. Either "top" or "bottom". - * - * @return - * jQuery object containing all displaced elements of given region. - */ -Drupal.displace.getDisplacedElements = function (region) { - if (!this.elements[region]) { - this.elements[region] = $('.displace-' + region); - } - return this.elements[region]; -}; - -/** - * Get the total displacement of given region. - * - * @param region - * Region name. Either "top" or "bottom". - * - * @return - * The total displacement of given region in pixels. - */ -Drupal.displace.getDisplacement = function (region) { - if (!this.displacement[region]) { - var offset = 0; - var height = 0; - this.getDisplacedElements(region).each(function () { - offset = offset + height; - height = $(this).css(region, offset).outerHeight(); - - // In IE, Shadow filter adds some extra height, so we need to remove it - // from the returned height. - if (this.filters && this.filters.length && this.filters.item('DXImageTransform.Microsoft.Shadow')) { - height -= this.filters.item('DXImageTransform.Microsoft.Shadow').strength; - } - }); - - // Use offset of latest displaced element as the total displacement. - this.displacement[region] = offset + height; - } - - return this.displacement[region]; -}; - -/** - * Clear cache. - * - * @param selectorCache - * Boolean whether to also clear the selector cache. - */ -Drupal.displace.clearCache = function (selectorCache) { - if (selectorCache) { - this.elements = []; - } - this.displacement = []; -}; - -})(jQuery); |