3

How do I apply lazy loading to an iframe embedding a video?

<iframe src="https://www.youtube.com/embed/teL-R6yimDY"
    allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
    allowfullscreen=""
    width="560"
    height="315"
    frameborder="0"></iframe>

I have tried to add loading="eager", loading="auto" and loading="lazyload"

yivi
  • 42,438
  • 18
  • 116
  • 138
ekta
  • 31
  • 1
  • 3

1 Answers1

2

You can use srcdoc attribute inside your iframe tag to load an image. Please see the following example as reference:

<iframe
  width="560"
  height="315"
  src="https://www.youtube.com/embed/Y8Wp3dafaMQ"
  srcdoc="<style>*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}</style><a href=https://www.youtube.com/embed/Y8Wp3dafaMQ?autoplay=1><img src=https://img.youtube.com/vi/Y8Wp3dafaMQ/hqdefault.jpg alt='Video The Dark Knight Rises: What Went Wrong? – Wisecrack Edition'><span>▶</span></a>"
  frameborder="0"
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
  title="The Dark Knight Rises: What Went Wrong? – Wisecrack Edition"
></iframe>

Source:

https://codepen.io/chriscoyier/pen/GRKZryx

https://css-tricks.com/lazy-load-embedded-youtube-videos/