| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Simple Intersection Obsever in iframe</title> |
| <meta name="viewport" content="width=600"> |
| <link rel="stylesheet" href="styles.css"> |
| <script src="script.js"></script> |
| |
| <style> |
| body { |
| height: 5000px; |
| font-family: Helvetica; |
| } |
| |
| section { |
| margin-top: 2000px; |
| } |
| |
| iframe { |
| width: 400px; |
| height: 300px; |
| } |
| |
| h2 { |
| margin-top: 0.2em; |
| margin-bottom: 0.25em; |
| } |
| </style> |
| <script> |
| var observer; |
| function doSetup() |
| { |
| observer = new IntersectionObserver(intersectedCallback, { threshold: [ |
| 0, |
| 0.1, |
| 0.2, |
| 0.3, |
| 0.4, |
| 0.5, |
| 0.6, |
| 0.7, |
| 0.8, |
| 0.9, |
| 1 |
| ] }); |
| |
| let iframe = document.getElementById('iframe'); |
| let target = iframe.contentDocument.getElementById('target'); |
| observer.observe(target); |
| } |
| window.addEventListener('load', doSetup, false); |
| </script> |
| </head> |
| <body> |
| |
| <div class="results"> |
| <h2>Logging</h2> |
| <button onclick="clearLog()" class="clear">🗑</button> |
| <pre id="logging"></pre> |
| </div> |
| |
| <p>Scroll down to see the iframe.</p> |
| <section> |
| <h2><iframe></h2> |
| <iframe id="iframe" srcdoc="<style> |
| body { |
| height: 5000px; |
| font-family: Helvetica; |
| } |
| |
| #target { |
| position: absolute; |
| left: 10px; |
| width: 170px; |
| height: 200px; |
| top: 2800px; |
| padding: 40px; |
| box-sizing: border-box; |
| font-size: 24pt; |
| background-color: rgba(119, 104, 113, 1); |
| color: white; |
| text-align: center; |
| border-radius: 10px; |
| } |
| </style> |
| <p>Scroll down to see the target</p> |
| <div id='target'>Target</div>"></iframe> |
| </section> |
| |
| </body> |
| </html> |