MCPcopy
hub / github.com/aFarkas/lazysizes / createPicture

Function createPicture

plugins/bgset/ls.bgset.js:58–121  ·  view source on GitHub ↗
(sets, elem, img)

Source from the content-addressed store, hash-verified

56 }
57 };
58 var createPicture = function(sets, elem, img){
59 var picture = document.createElement('picture');
60 var sizes = elem.getAttribute(lazySizesCfg.sizesAttr);
61 var ratio = elem.getAttribute('data-ratio');
62 var optimumx = elem.getAttribute('data-optimumx');
63
64 if(elem._lazybgset && elem._lazybgset.parentNode == elem){
65 elem.removeChild(elem._lazybgset);
66 }
67
68 Object.defineProperty(img, '_lazybgset', {
69 value: elem,
70 writable: true
71 });
72 Object.defineProperty(elem, '_lazybgset', {
73 value: picture,
74 writable: true
75 });
76
77 sets = sets.replace(regWhite, ' ').split(regSplitSet);
78
79 picture.style.display = 'none';
80 img.className = lazySizesCfg.lazyClass;
81
82 if(sets.length == 1 && !sizes){
83 sizes = 'auto';
84 }
85
86 sets.forEach(function(set){
87 var match;
88 var source = document.createElement('source');
89
90 if(sizes && sizes != 'auto'){
91 source.setAttribute('sizes', sizes);
92 }
93
94 if((match = set.match(regSource))){
95 source.setAttribute(lazySizesCfg.srcsetAttr, match[1]);
96
97 setTypeOrMedia(source, match[2]);
98 setTypeOrMedia(source, match[3]);
99 } else {
100 source.setAttribute(lazySizesCfg.srcsetAttr, set);
101 }
102
103 picture.appendChild(source);
104 });
105
106 if(sizes){
107 img.setAttribute(lazySizesCfg.sizesAttr, sizes);
108 elem.removeAttribute(lazySizesCfg.sizesAttr);
109 elem.removeAttribute('sizes');
110 }
111 if(optimumx){
112 img.setAttribute('data-optimumx', optimumx);
113 }
114 if(ratio) {
115 img.setAttribute('data-ratio', ratio);

Callers 3

ls.bgset.jsFile · 0.85

Calls 1

setTypeOrMediaFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…