MCPcopy
hub / github.com/marcj/css-element-queries / attachResizeEvent

Function attachResizeEvent

src/ResizeSensor.js:150–300  ·  view source on GitHub ↗

* * @param {HTMLElement} element * @param {Function} resized

(element, resized)

Source from the content-addressed store, hash-verified

148 * @param {Function} resized
149 */
150 function attachResizeEvent(element, resized) {
151 if (!element) return;
152 if (element.resizedAttached) {
153 element.resizedAttached.add(resized);
154 return;
155 }
156
157 element.resizedAttached = new EventQueue();
158 element.resizedAttached.add(resized);
159
160 element.resizeSensor = document.createElement('div');
161 element.resizeSensor.dir = 'ltr';
162 element.resizeSensor.className = 'resize-sensor';
163
164 var style = {
165 pointerEvents: 'none',
166 position: 'absolute',
167 left: '0px',
168 top: '0px',
169 right: '0px',
170 bottom: '0px',
171 overflow: 'hidden',
172 zIndex: '-1',
173 visibility: 'hidden',
174 maxWidth: '100%'
175 };
176 var styleChild = {
177 position: 'absolute',
178 left: '0px',
179 top: '0px',
180 transition: '0s',
181 };
182
183 setStyle(element.resizeSensor, style);
184
185 var expand = document.createElement('div');
186 expand.className = 'resize-sensor-expand';
187 setStyle(expand, style);
188
189 var expandChild = document.createElement('div');
190 setStyle(expandChild, styleChild);
191 expand.appendChild(expandChild);
192
193 var shrink = document.createElement('div');
194 shrink.className = 'resize-sensor-shrink';
195 setStyle(shrink, style);
196
197 var shrinkChild = document.createElement('div');
198 setStyle(shrinkChild, styleChild);
199 setStyle(shrinkChild, { width: '200%', height: '200%' });
200 shrink.appendChild(shrinkChild);
201
202 element.resizeSensor.appendChild(expand);
203 element.resizeSensor.appendChild(shrink);
204 element.appendChild(element.resizeSensor);
205
206 var computedStyle = window.getComputedStyle(element);
207 var position = computedStyle ? computedStyle.getPropertyValue('position') : null;

Callers 1

ResizeSensorFunction · 0.85

Calls 4

setStyleFunction · 0.85
addEventFunction · 0.85
resetFunction · 0.85
getElementSizeFunction · 0.70

Tested by

no test coverage detected