From ee156195b83a733d29bfd4ba7736f422f692509f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Je=CC=81ro=CC=82me=20Danthinne?= <jerome@grincheux.be> Date: Tue, 15 Mar 2011 16:53:22 +0100 Subject: [PATCH] [#1085930] fixed : sniff elements borders, paddings and margins to adjust slideshow width and height. --- js/field_slideshow.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/js/field_slideshow.js b/js/field_slideshow.js index a8992b0..867a610 100644 --- a/js/field_slideshow.js +++ b/js/field_slideshow.js @@ -6,8 +6,20 @@ var settings = Drupal.settings.field_slideshow[i]; var slideshow = $('.' + i); - // Add Caption height if exists - if (settings.caption != '') slideshow.css("padding-bottom", ($("." + i + " .field-slideshow-caption").outerHeight() + parseInt($("." + i + " .field-slideshow-slide img").css("margin-bottom"))) + "px"); + // Add padding if needed + var padding = [0, 0, 0, 0]; + var props = ['margin-top', 'margin-right', 'margin-bottom', 'margin-left', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width']; + $('.field-slideshow-slide:first,.field-slideshow-slide a:first,.field-slideshow-slide img:first').each(function() { + $this = $(this); + for (p in props) padding[p%4] += parseInt($this.css(props[p])); + }); + if (settings.caption != '') padding[2] += $("." + i + " .field-slideshow-caption").outerHeight(); + slideshow.css({ + 'padding-top': padding[0] + 'px', + 'padding-right': padding[1] + 'px', + 'padding-bottom': padding[2] + 'px', + 'padding-left': padding[3] + 'px' + }); // Create Pager wrapper if (settings.pager != '') slideshow.after("<" + (settings.pager == 'image' ? 'ul' : 'div') + " id='" + i + "-pager' class='field-slideshow-pager'/>"); -- GitLab