Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 290e564

Browse files
author
alexander.farkas
committedAug 6, 2018
improve effect plugin
1 parent be37207 commit 290e564

25 files changed

+81
-71
lines changed
 

‎lazysizes-umd.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lazysizes.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lazysizes",
3-
"version": "4.0.4",
3+
"version": "4.1.0",
44
"filename": "lazysizes.min.js",
55
"license": "MIT",
66
"author": "Alexander Farkas <info@corrupt-system.de>",

‎plugins/artdirect/ls.artdirect.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/aspectratio/ls.aspectratio.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/attrchange/ls.attrchange.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/bgset/ls.bgset.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/blur-up/ls.blur-up.js

Lines changed: 56 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,60 @@
3636
};
3737

3838
var createBlurup = function(picture, img, src, blurUp){
39+
var blurImg;
3940
var isBlurUpLoaded = false;
4041
var isForced = false;
4142
var start = blurUp == 'always' ? 0 : Date.now();
4243
var isState = 0;
4344
var parent = (picture || img).parentNode;
44-
var blurImg = document.createElement('img');
4545

46-
var remove = function () {
47-
lazySizes.rAF(function() {
48-
try {
49-
blurImg.parentNode.removeChild(blurImg);
50-
} catch(er){
46+
var createBlurUpImg = function () {
5147

52-
}
53-
});
48+
if(!src){return;}
49+
50+
var onloadBlurUp = function(){
51+
isBlurUpLoaded = true;
52+
53+
lazySizes.rAF(function () {
54+
lazySizes.aC(blurImg, 'ls-blur-up-loaded');
55+
});
56+
57+
blurImg.removeEventListener('load', onloadBlurUp);
58+
};
59+
60+
blurImg = document.createElement('img');
61+
62+
blurImg.addEventListener('load', onloadBlurUp);
63+
64+
blurImg.className = 'ls-blur-up-img';
65+
blurImg.src = src;
66+
67+
blurImg.className += ' ls-inview';
68+
69+
parent.insertBefore(blurImg, (picture || img).nextSibling);
70+
71+
if(blurUp != 'always'){
72+
blurImg.style.visibility = 'hidden';
73+
74+
setTimeout(function(){
75+
lazySizes.rAF(function () {
76+
if(!isForced){
77+
blurImg.style.visibility = '';
78+
}
79+
});
80+
}, 20);
81+
}
82+
};
83+
84+
var remove = function () {
85+
if(blurImg){
86+
lazySizes.rAF(function() {
87+
try {
88+
blurImg.parentNode.removeChild(blurImg);
89+
} catch(er){}
90+
blurImg = null;
91+
});
92+
}
5493
};
5594

5695
var setStateUp = function(force){
@@ -69,9 +108,11 @@
69108
img.removeEventListener('load', onload);
70109
img.removeEventListener('error', onload);
71110

72-
lazySizes.rAF(function(){
73-
lazySizes.aC(blurImg, 'ls-original-loaded');
74-
});
111+
if(blurImg){
112+
lazySizes.rAF(function(){
113+
lazySizes.aC(blurImg, 'ls-original-loaded');
114+
});
115+
}
75116

76117
if(!isBlurUpLoaded || Date.now() - start < 66){
77118
setStateUp(true);
@@ -80,34 +121,21 @@
80121
}
81122
};
82123

83-
var onloadBlurUp = function(){
84-
isBlurUpLoaded = true;
85-
86-
lazySizes.rAF(function () {
87-
lazySizes.aC(blurImg, 'ls-blur-up-loaded');
88-
});
89-
90-
blurImg.removeEventListener('load', onloadBlurUp);
91-
};
92-
93-
blurImg.addEventListener('load', onloadBlurUp);
94-
95-
blurImg.className = 'ls-blur-up-img';
96-
blurImg.src = src;
124+
createBlurUpImg();
97125

98126
img.addEventListener('load', onload);
99127
img.addEventListener('error', onload);
100128

129+
101130
if(blurUp == 'unobtrusive'){
102-
blurImg.className += ' ls-inview';
103131
setStateUp();
104132
} else {
105133
var parentUnveil = function (e) {
106134
if(parent != e.target){
107135
return;
108136
}
109137

110-
lazySizes.aC(blurImg, 'ls-inview');
138+
lazySizes.aC(img || blurImg, 'ls-inview');
111139

112140
setStateUp();
113141

@@ -123,20 +151,6 @@
123151
lazySizes.aC(parent, lazySizes.cfg.lazyClass);
124152
}
125153

126-
parent.insertBefore(blurImg, (picture || img).nextSibling);
127-
128-
if(blurUp != 'always'){
129-
blurImg.style.visibility = 'hidden';
130-
131-
setTimeout(function(){
132-
lazySizes.rAF(function () {
133-
if(!isForced){
134-
blurImg.style.visibility = '';
135-
}
136-
});
137-
}, 20);
138-
}
139-
140154
};
141155

142156
window.addEventListener('lazybeforeunveil', function (e) {
@@ -151,11 +165,7 @@
151165
picture = null;
152166
}
153167

154-
var src = getLowSrc(picture, img);
155-
156-
if(!src){return;}
157-
158-
createBlurup(picture, img, src, detail.blurUp);
168+
createBlurup(picture, img, getLowSrc(picture, img), detail.blurUp);
159169
});
160170

161171
window.addEventListener('lazyunveilread', function (e) {

‎plugins/blur-up/ls.blur-up.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/custommedia/ls.custommedia.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/fix-ios-sizes/fix-ios-sizes.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/include/ls.include.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/noscript/ls.noscript.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/object-fit/ls.object-fit.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/optimumx/ls.optimumx.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/parent-fit/ls.parent-fit.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/print/ls.print.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/progressive/ls.progressive.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/respimg/ls.respimg.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/rias/ls.rias.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/static-gecko-picture/ls.static-gecko-picture.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/twitter/ls.twitter.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/unload/ls.unload.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/unveilhooks/ls.unveilhooks.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎plugins/video-embed/ls.video-embed.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.