| <!DOCTYPE html> |
| <html> |
| |
| <head> |
| <script src="../build/element-resize-detector.js"></script> |
| <style> |
| html, body { |
| box-sizing: border-box; |
| } |
| </style> |
| </head> |
| |
| <body> |
| <div id="container"> |
| <button id="add-detached-object">Add detached (object)</button> |
| <button id="add-detached-scroll">Add detached (scroll)</button> |
| <button id="add-unrendered-object">Add unrendered (object)</button> |
| <button id="add-unrendered-scroll">Add unrendered (scroll)</button> |
| <button id="add-detached-unrendered-object">Add detached unrendered (object)</button> |
| <button id="add-detached-unrendered-scroll">Add detached unrendered (scroll)</button> |
| </div> |
| |
| <script> |
| var container = document.querySelector('#container'); |
| var erdObject = elementResizeDetectorMaker({ |
| strategy: "object", |
| debug: true |
| }); |
| var erdScroll = elementResizeDetectorMaker({ |
| strategy: "scroll", |
| debug: true |
| }); |
| |
| function addDetached(erd, container, content) { |
| console.log("Creating detached element"); |
| var div = document.createElement("div"); |
| div.innerHTML = content; |
| div.style.background = "grey"; |
| div.style.margin = "10px"; |
| erd.listenTo({ |
| callOnAdd: false |
| }, div, function (el) { |
| var style = getComputedStyle(el); |
| console.log('el change size: ', style.width, style.height); |
| }); |
| setTimeout(function () { |
| console.log('Adding element to DOM'); |
| container.appendChild(div); |
| }, 2000); |
| } |
| |
| function addUnrendered(erd, container, content, n) { |
| function add(erd, container, content) { |
| console.log("Creating unrendered element"); |
| var div = document.createElement("div"); |
| div.innerHTML = content; |
| div.style.background = "grey"; |
| div.style.margin = "10px"; |
| div.style.display = "none"; |
| div.style.position = "relative"; |
| container.appendChild(div); |
| erd.listenTo({ |
| callOnAdd: false |
| }, div, function (el) { |
| var style = getComputedStyle(el); |
| console.log('el change size: ', style.width, style.height); |
| }); |
| return div; |
| } |
| |
| var divs = []; |
| for (var i = 0; i < n; i++) { |
| divs.push(add(erd, container, content)); |
| } |
| |
| setTimeout(function () { |
| console.log('rendering elements'); |
| divs.forEach(function (div) { |
| div.style.display = "block"; |
| }); |
| }, 2000); |
| } |
| |
| function addDetachedUnrendered(erd, container, content, n) { |
| function add(erd, container, content) { |
| console.log("Creating detached unrendered element"); |
| var div = document.createElement("div"); |
| div.innerHTML = content; |
| div.style.background = "grey"; |
| div.style.margin = "10px"; |
| div.style.display = "none"; |
| div.style.position = "relative"; |
| erd.listenTo({ |
| callOnAdd: false |
| }, div, function (el) { |
| var style = getComputedStyle(el); |
| console.log('el change size: ', style.width, style.height); |
| }); |
| return div; |
| } |
| |
| var divs = []; |
| for (var i = 0; i < n; i++) { |
| divs.push(add(erd, container, content)); |
| } |
| |
| setTimeout(function () { |
| console.log('Adding element to DOM'); |
| divs.forEach(function (div) { |
| container.appendChild(div); |
| }); |
| }, 1000); |
| |
| setTimeout(function () { |
| console.log('rendering elements'); |
| divs.forEach(function (div) { |
| div.style.display = "block"; |
| }); |
| }, 2000); |
| } |
| |
| document.querySelector("#add-detached-object").onclick = addDetached.bind(null, erdObject, container, "detached object"); |
| document.querySelector("#add-detached-scroll").onclick = addDetached.bind(null, erdScroll, container, "detached scroll"); |
| document.querySelector("#add-unrendered-object").onclick = addUnrendered.bind(null, erdObject, container, "unrendered object", 1); |
| document.querySelector("#add-unrendered-scroll").onclick = addUnrendered.bind(null, erdScroll, container, "unrendered scroll", 1); |
| document.querySelector("#add-detached-unrendered-object").onclick = addDetachedUnrendered.bind(null, erdObject, container, "detached unrendered object", 1); |
| document.querySelector("#add-detached-unrendered-scroll").onclick = addDetachedUnrendered.bind(null, erdScroll, container, "detached unrendered scroll", 1); |
| </script> |
| </body> |
| </html> |