From ada946c854b843ca736de40ec351924ad8747522 Mon Sep 17 00:00:00 2001 From: aFarkas Date: Tue, 4 Aug 2015 13:26:53 +0200 Subject: [PATCH] use always use width of parent element if data-parent-fit is used (fixes issue #137) --- plugins/parent-fit/ls.parent-fit.js | 5 +++-- plugins/parent-fit/ls.parent-fit.min.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/parent-fit/ls.parent-fit.js b/plugins/parent-fit/ls.parent-fit.js index 4cc6aa5c..e41ad660 100644 --- a/plugins/parent-fit/ls.parent-fit.js +++ b/plugins/parent-fit/ls.parent-fit.js @@ -54,11 +54,10 @@ return dims.w / dims.h; }, calculateSize: function(element, width){ - var displayRatio, height, imageRatio; + var displayRatio, height, imageRatio, retWidth; var fitObj = this.getFit(element); var fit = fitObj.fit; var fitElem = fitObj.parent; - var retWidth = width; if(fit != 'width' && ((fit != 'contain' && fit != 'cover') || !(imageRatio = this.getImageRatio(element)))){return width;} @@ -68,6 +67,8 @@ fitElem = element; } + retWidth = width; + if(fit == 'width'){ retWidth = width; } else { diff --git a/plugins/parent-fit/ls.parent-fit.min.js b/plugins/parent-fit/ls.parent-fit.min.js index 2327c91a..5862e9da 100644 --- a/plugins/parent-fit/ls.parent-fit.min.js +++ b/plugins/parent-fit/ls.parent-fit.min.js @@ -1,2 +1,2 @@ /*! lazysizes - v1.1.4 */ -!function(a,b){"use strict";if(a.addEventListener){var c=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,d=/^picture$/i,e={getFit:function(a){var b={fit:a.getAttribute("data-parent-fit")};return b.fit?(b.parent=a.parentNode,b.parent&&d.test(b.parent.nodeName||"")&&(b.parent=b.parent.parentNode)):b.fit=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue("object-fit"),b},getImageRatio:function(b){var e,f,g,h={},i=b.parentNode,j=i&&d.test(i.nodeName||"")?i.querySelectorAll("source, img"):[b];for(e=0;e40&&(c=b/d)&&("cover"==g&&e>c||"contain"==g&&c>e)&&(i=b*(e/c))),i):b}},f=function(){a.lazySizes&&(lazySizes.parentFit||(lazySizes.parentFit=e),a.removeEventListener("lazybeforeunveil",f,!0))};a.addEventListener("lazybeforeunveil",f,!0),b.addEventListener("lazybeforeunveil",function(a){var b=a.target;!b.getAttribute("data-parent-fit")||b.getAttribute(lazySizesConfig.sizesAttr)||b.getAttribute("sizes")||b.setAttribute(lazySizesConfig.sizesAttr,"auto")}),b.addEventListener("lazybeforesizes",function(a){a.defaultPrevented||(a.detail.width=e.calculateSize(a.target,a.detail.width))}),setTimeout(f)}}(window,document); \ No newline at end of file +!function(a,b){"use strict";if(a.addEventListener){var c=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,d=/^picture$/i,e={getFit:function(a){var b={fit:a.getAttribute("data-parent-fit")};return b.fit?(b.parent=a.parentNode,b.parent&&d.test(b.parent.nodeName||"")&&(b.parent=b.parent.parentNode)):b.fit=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue("object-fit"),b},getImageRatio:function(b){var e,f,g,h={},i=b.parentNode,j=i&&d.test(i.nodeName||"")?i.querySelectorAll("source, img"):[b];for(e=0;e40&&(c=b/d)&&("cover"==h&&e>c||"contain"==h&&c>e)&&(f=b*(e/c))),f):b}},f=function(){a.lazySizes&&(lazySizes.parentFit||(lazySizes.parentFit=e),a.removeEventListener("lazybeforeunveil",f,!0))};a.addEventListener("lazybeforeunveil",f,!0),b.addEventListener("lazybeforesizes",function(a){a.defaultPrevented||(a.detail.width=e.calculateSize(a.target,a.detail.width))}),setTimeout(f)}}(window,document); \ No newline at end of file