From 642314410eb8aca40c199ba230d075adc80bce25 Mon Sep 17 00:00:00 2001 From: Jan Rembold Date: Wed, 9 Dec 2015 14:09:55 +0100 Subject: [PATCH 1/3] added events for ready, all.ready, new.source --- build/jquery.responsiveImage.map | 2 +- build/jquery.responsiveImage.min.js | 4 ++-- src/jquery.responsiveImage.js | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/build/jquery.responsiveImage.map b/build/jquery.responsiveImage.map index 71b23ba..e4c881c 100644 --- a/build/jquery.responsiveImage.map +++ b/build/jquery.responsiveImage.map @@ -1 +1 @@ -{"version":3,"file":"jquery.responsiveImage.min.js","sources":["../src/jquery.responsiveImage.js"],"names":["$","window","document","undefined","Plugin","element","options","this","$element","extend","defaults","sources","dpr","getDpr","attributeCount","attributes","length","init","pluginName","source","container","minWidthDefault","maxWidthDefault","Number","MAX_VALUE","minDprDefault","resizeEvent","onGetWidth","prototype","loadSources","containerSelector","attr","$container","parents","loadResponsiveImage","initResizeEvent","self","find","each","$source","data","src","minWidth","maxWidth","minDpr","i","attribute","push","sort","a","b","newSource","targetWidth","getWidth","sourceCount","$currentSource","html","createImageWithAttributes","isFunction","call","width","innerWidth","documentElement","clientWidth","body","screen","systemXDPI","logicalXDPI","devicePixelRatio","image","createElement","setAttribute","on","proxy","fn","jQuery"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["../src/jquery.responsiveImage.js"],"names":["$","window","document","undefined","Plugin","element","options","this","$element","extend","defaults","sources","dpr","getDpr","attributeCount","attributes","length","init","pluginName","source","container","minWidthDefault","maxWidthDefault","Number","MAX_VALUE","minDprDefault","resizeEvent","onGetWidth","prototype","loadSources","containerSelector","attr","$container","parents","loadResponsiveImage","initResizeEvent","self","find","each","$source","data","src","minWidth","maxWidth","minDpr","i","attribute","push","sort","a","b","newSource","targetWidth","getWidth","sourceCount","$currentSource","html","createImageWithAttributes","trigger","isFunction","call","width","innerWidth","documentElement","clientWidth","body","screen","systemXDPI","logicalXDPI","devicePixelRatio","image","createElement","setAttribute","on","proxy","fn","jQuery"],"mappings":";;;CAGA,SAAYA,EAAGC,EAAQC,EAAUC,GAC7B,YAmBA,SAASC,GAASC,EAASC,GACvBC,KAAKC,SAAWR,EAAEK,GAClBE,KAAKD,QAAUN,EAAES,UAAYC,EAAUJ,GAEvCC,KAAKI,WACLJ,KAAKK,IAAML,KAAKM,SAChBN,KAAKO,eAAiBP,KAAKD,QAAQS,WAAWC,OAE9CT,KAAKU,OAxBT,GAAIC,GAAa,kBACbR,GACIS,OAAoB,SACpBC,UAAoB,KAEpBC,gBAAoB,EACpBC,gBAAoBC,OAAOC,UAC3BC,cAAoB,EAEpBV,YAAqB,QAAS,MAAO,QAAS,QAAS,UACvDW,YAAoB,SAEpBC,WAAoB,KAgB5B3B,GAAES,OAAOL,EAAOwB,WACZX,KAAM,WAIF,GADAV,KAAKI,QAAUJ,KAAKsB,cACO,IAAxBtB,KAAKI,QAAQK,OAAhB,CAKA,GAAIc,GAAoBvB,KAAKC,SAASuB,KAAK,mBAAqBxB,KAAKD,QAAQc,SAC1EU,KACCvB,KAAKyB,WAAazB,KAAKC,SAASyB,QAAQH,IAI5CvB,KAAK2B,sBAGL3B,KAAK4B,oBAGTN,YAAa,WACT,GAAIO,GAAO7B,KACPI,IAoCJ,OAjCAJ,MAAKC,SAAS6B,KAAK9B,KAAKD,QAAQa,QAAQmB,KAAK,WACzC,GAAIC,GAAUvC,EAAEO,KAGhB,IAAGgC,EAAQC,KAAK,OAAQ,CASpB,IAAI,GARAA,IACAC,IAAYF,EAAQC,KAAK,OACzBE,SAAYH,EAAQC,KAAK,cAAgBJ,EAAK9B,QAAQe,gBACtDsB,SAAYJ,EAAQC,KAAK,cAAgBJ,EAAK9B,QAAQgB,gBACtDsB,OAAYL,EAAQC,KAAK,YAAcJ,EAAK9B,QAAQmB,eAIhDoB,EAAE,EAAGA,EAAET,EAAKtB,eAAgB+B,IAAK,CACrC,GAAIC,GAAYV,EAAK9B,QAAQS,WAAW8B,EACxCL,GAAKM,GAAaP,EAAQC,KAAKM,IAAcV,EAAK5B,SAASgC,KAAKM,GAGpEnC,EAAQoC,KAAKP,MAKrB7B,EAAQqC,KAAK,SAASC,EAAGC,GACrB,MAAGA,GAAER,WAAaO,EAAEP,SACbQ,EAAEP,WAAaM,EAAEN,SACTO,EAAEN,OAASK,EAAEL,OAEjBM,EAAEP,SAAWM,EAAEN,SAEnBO,EAAER,SAAWO,EAAEP,WAGnB/B,GAGXuB,oBAAqB,WAMjB,IAAK,GALDiB,GACAC,EAAc7C,KAAK8C,WACnBC,EAAc/C,KAAKI,QAAQK,OAGtB6B,EAAE,EAAKS,EAAFT,EAAeA,IACzB,GAAItC,KAAKI,QAAQkC,GAAGH,UAAYU,GAC5B7C,KAAKI,QAAQkC,GAAGF,SAAWS,GAC3B7C,KAAKI,QAAQkC,GAAGD,QAAUrC,KAAKK,IACjC,CACEuC,EAAY5C,KAAKI,QAAQkC,EACzB,OAKLM,IAAc5C,KAAKgD,iBAKtBhD,KAAKgD,eAAiBJ,EAGtB5C,KAAKC,SAASgD,KAAMjD,KAAKkD,0BAA0BN,IAGnD5C,KAAKC,SAASkD,QAAQ,cAAcxC,KAGxCmC,SAAU,WACN,MAAGrD,GAAE2D,WAAWpD,KAAKD,QAAQqB,YAClBpB,KAAKD,QAAQqB,WAAWiC,KAAKrD,MAC9BA,KAAKyB,WACJzB,KAAKyB,WAAW6B,QAGpB5D,EAAO6D,YAAc5D,EAAS6D,gBAAgBC,aAAe9D,EAAS+D,KAAKD,aAGtFnD,OAAQ,WACJ,MAAIZ,GAAOiE,OAAOC,aAAehE,GAAaF,EAAOiE,OAAOE,cAAgBjE,GAAaF,EAAOiE,OAAOC,WAAalE,EAAOiE,OAAOE,YACvHnE,EAAOiE,OAAOC,WAAalE,EAAOiE,OAAOE,YAGhDnE,EAAOoE,mBAAqBlE,EACrBF,EAAOoE,iBAGX,GAGXZ,0BAA2B,SAAStC,GAEhC,GAAImD,GAAQpE,EAASqE,cAAc,MACnCD,GAAME,aAAa,MAAOrD,EAAOsB,IAGjC,KAAI,GAAII,GAAE,EAAGA,EAAEtC,KAAKO,eAAgB+B,IAAK,CACrC,GAAIC,GAAYvC,KAAKD,QAAQS,WAAW8B,EACP,oBAAvB1B,GAAO2B,IAAqD,KAAtB3B,EAAO2B,IACnDwB,EAAME,aAAa1B,EAAW3B,EAAO2B,IAI7C,MAAOwB,IAGXnC,gBAAiB,WAEbnC,EAAEC,GAAQwE,GAAGlE,KAAKD,QAAQoB,YAAa1B,EAAE0E,MAAMnE,KAAK2B,oBAAqB3B,UAIjFP,EAAE2E,GAAIzD,GAAe,SAAWZ,GAC5B,MAAOC,MAAK+B,KAAK,WACPtC,EAAEwC,KAAMjC,KAAM,UAAYW,KAC5BlB,EAAEwC,KAAMjC,KAAM,UAAYW,EAAY,GAAId,GAAQG,KAAMD,IACxDN,EAAEO,MAAMmD,QAAQ,SAASxC,IAE7BlB,EAAEC,GAAQyD,QAAQ,aAAaxC,OAIvC0D,OAAQ3E,OAAQC","file":"jquery.responsiveImage.min.js"} \ No newline at end of file diff --git a/build/jquery.responsiveImage.min.js b/build/jquery.responsiveImage.min.js index 79493b0..edae2b4 100644 --- a/build/jquery.responsiveImage.min.js +++ b/build/jquery.responsiveImage.min.js @@ -1,5 +1,5 @@ -/*! jquery-responsive-image - v1.1.0 - 2015-07-05 +/*! jquery-responsive-image - v1.2.0 - 2015-12-09 * Copyright (c) 2015 Jan Rembold ; License: MIT */ -!function(a,b,c,d){"use strict";function e(b,c){this.$element=a(b),this.options=a.extend({},g,c),this.sources=[],this.dpr=this.getDpr(),this.attributeCount=this.options.attributes.length,this.init()}var f="responsiveImage",g={source:"> span",container:null,minWidthDefault:0,maxWidthDefault:Number.MAX_VALUE,minDprDefault:1,attributes:["title","alt","class","width","height"],resizeEvent:"resize",onGetWidth:null};a.extend(e.prototype,{init:function(){if(this.sources=this.loadSources(),0!==this.sources.length){var a=this.$element.attr("data-container")||this.options.container;a&&(this.$container=this.$element.parents(a)),this.loadResponsiveImage(),this.initResizeEvent()}},loadSources:function(){var b=this,c=[];return this.$element.find(this.options.source).each(function(){var d=a(this);if(d.data("src")){for(var e={src:d.data("src"),minWidth:d.data("min-width")||b.options.minWidthDefault,maxWidth:d.data("max-width")||b.options.maxWidthDefault,minDpr:d.data("min-dpr")||b.options.minDprDefault},f=0;fd;d++)if(this.sources[d].minWidth<=b&&this.sources[d].maxWidth>b&&this.sources[d].minDpr<=this.dpr){a=this.sources[d];break}a!==this.$currentSource&&(this.$currentSource=a,this.$element.html(this.createImageWithAttributes(a)))},getWidth:function(){return a.isFunction(this.options.onGetWidth)?this.options.onGetWidth.call(this):this.$container?this.$container.width():b.innerWidth||c.documentElement.clientWidth||c.body.clientWidth},getDpr:function(){return b.screen.systemXDPI!==d&&b.screen.logicalXDPI!==d&&b.screen.systemXDPI>b.screen.logicalXDPI?b.screen.systemXDPI/b.screen.logicalXDPI:b.devicePixelRatio!==d?b.devicePixelRatio:1},createImageWithAttributes:function(a){var b=c.createElement("img");b.setAttribute("src",a.src);for(var d=0;d span",container:null,minWidthDefault:0,maxWidthDefault:Number.MAX_VALUE,minDprDefault:1,attributes:["title","alt","class","width","height"],resizeEvent:"resize",onGetWidth:null};a.extend(e.prototype,{init:function(){if(this.sources=this.loadSources(),0!==this.sources.length){var a=this.$element.attr("data-container")||this.options.container;a&&(this.$container=this.$element.parents(a)),this.loadResponsiveImage(),this.initResizeEvent()}},loadSources:function(){var b=this,c=[];return this.$element.find(this.options.source).each(function(){var d=a(this);if(d.data("src")){for(var e={src:d.data("src"),minWidth:d.data("min-width")||b.options.minWidthDefault,maxWidth:d.data("max-width")||b.options.maxWidthDefault,minDpr:d.data("min-dpr")||b.options.minDprDefault},f=0;fd;d++)if(this.sources[d].minWidth<=b&&this.sources[d].maxWidth>b&&this.sources[d].minDpr<=this.dpr){a=this.sources[d];break}a!==this.$currentSource&&(this.$currentSource=a,this.$element.html(this.createImageWithAttributes(a)),this.$element.trigger("new.source."+f))},getWidth:function(){return a.isFunction(this.options.onGetWidth)?this.options.onGetWidth.call(this):this.$container?this.$container.width():b.innerWidth||c.documentElement.clientWidth||c.body.clientWidth},getDpr:function(){return b.screen.systemXDPI!==d&&b.screen.logicalXDPI!==d&&b.screen.systemXDPI>b.screen.logicalXDPI?b.screen.systemXDPI/b.screen.logicalXDPI:b.devicePixelRatio!==d?b.devicePixelRatio:1},createImageWithAttributes:function(a){var b=c.createElement("img");b.setAttribute("src",a.src);for(var d=0;d; License: MIT */ (function ( $, window, document, undefined ) { @@ -122,6 +122,9 @@ // append responsive image to target element this.$element.html( this.createImageWithAttributes(newSource) ); + + // trigger new source event + this.$element.trigger('new.source.'+pluginName); }, getWidth: function(){ @@ -172,7 +175,9 @@ return this.each(function() { if ( !$.data( this, 'plugin_' + pluginName ) ) { $.data( this, 'plugin_' + pluginName, new Plugin( this, options ) ); + $(this).trigger('ready.'+pluginName); } + $(window).trigger('all.ready.'+pluginName); }); }; From 9d50026fa826c6251f69d5260d3a9ef2eec6c4b3 Mon Sep 17 00:00:00 2001 From: Jan Rembold Date: Wed, 9 Dec 2015 14:10:07 +0100 Subject: [PATCH 2/3] updated readme --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cf19f24..264572f 100644 --- a/README.md +++ b/README.md @@ -115,9 +115,18 @@ onGetWidth: function(){ ``` ---- +### Events -## Attributes +These events get fired: + +| Event | Description | Element | +| ----- | ----------- | ------- | +| ready.responsiveImage | This event fires when the responsive image was initially loaded, fires only once | The picture container | +| all.ready.responsiveImage | This event fires when all responsive images were initially loaded, fires only once | Global - $(window) | +| new.source.responsiveImage | This event fires when the image source was changed | The picture container | + + +### Attributes Following image attributes can be set with there corresponding data attributes. From e8e3d82aac425a1157af9c49a1ee664fb15d384f Mon Sep 17 00:00:00 2001 From: Jan Rembold Date: Wed, 9 Dec 2015 14:10:19 +0100 Subject: [PATCH 3/3] updated version --- bower.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index 7adf1fc..c7b5c64 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-responsive-image", - "version": "1.1.0", + "version": "1.2.0", "homepage": "https://github.com/janrembold/jquery-responsive-image", "authors": [ "Jan Rembold " diff --git a/package.json b/package.json index 9ed47ea..a1a01f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-responsive-image", - "version": "1.1.0", + "version": "1.2.0", "description": "A jQuery responsive image plugin with viewport or container based width matching support", "author": "Jan Rembold ", "main": "build/jquery.responsiveImage.min.js",