Script Lazy Load Youtube Pure JavaScript tanpa jQuery

Bagi sobat yang sering membagikan video baik lagu atau film di blognya, tentunya akan sedikit lambat untuk menampilkan video dari YouTube, karena harus load video yang di iframe atau di embed.

Untuk solusi agar lebih cepat diload yaitu menggunakan YouTube Lazy Load. Dengan Lazy Load, hanya akan menampilkan thumbnail Video Youtube, dan iframe akan dimuat setelah di klik

Script yang saya bagikan ini tidak memerlukan jQuery, karena murni menggunakan JavaScript. Script ini bisa dipasang diberbagai flatform seperti Blogger, WordPress, Joomla dll. Yu.. Langsung ke tutorial

Struktur HTML

<div class="youtube" data-embed="PCehl2RwkEI">
    <div class="play-button"></div>
</div>

Kalian tinggal merubah ID video yang akan diembed/diiframe saja. Untuk mendapatkan ID video bisa dilihat di adressbar, seperti gambar berikut

Youtube Video ID

Menambahkan CSS

Untuk membuat tampilan Youtube mebjadi responsive, penambahan Button manipulasi, maka tambahkan CSS ini. Untuk pengguna Blogger simpan di atas </style> atau ]]></b:skin>.

.youtube {
  background-color: #000;
  margin-bottom: 30px;
  position: relative;
  padding-top: 56.25%;
  overflow: hidden;
  cursor: pointer;
}
.youtube img {
  width: 100%;
  top: -16.82%;
  left: 0;
  opacity: 0.7;
}
.youtube .play-button {
  width: 68px;
  height: 47px;
  background-color: #ff0000;
  box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
  z-index: 1;
  opacity: 0.8;
  border-radius: 10px;
}
.youtube .play-button:before {
  content: "";
  border-style: solid;
  border-width: 10px 0 10px 20.0px;
  border-color: transparent transparent transparent #fff;
}
.youtube img,
.youtube .play-button {
  cursor: pointer;
}
.youtube img,
.youtube iframe,
.youtube .play-button,
.youtube .play-button:before {
  position: absolute;
}
.youtube .play-button,
.youtube .play-button:before {
  top: 50%;
  left: 50%;
  transform: translate3d( -50%, -50%, 0 );
}
.youtube iframe {
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}

JavaScript

Tambahkan script ini di atas </body>

<script>
//<![CDATA[
( function() {
  var youtube = document.querySelectorAll( ".youtube" ); 
  for (var i = 0; i < youtube.length; i++) {    
    var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";    
    var image = new Image();
        image.src = source;
        image.addEventListener( "load", function() {
          youtube[ i ].appendChild( image );
        }( i ) );
        youtube[i].addEventListener( "click", function() {
          var iframe = document.createElement( "iframe" );
            iframe.setAttribute( "frameborder", "0" );
            iframe.setAttribute( "allowfullscreen", "" );
	    iframe.setAttribute( "allow", "autoplay" );
            iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
              this.innerHTML = "";
              this.appendChild( iframe );
        } );  
  };  
} )();
//]]>
</script>

Permasalahan Pada Blogger

Hal yang dikeluhkan oleh blogger ketika menggunakan Youtube Lazy Load adalah tidak muncul Thumbnail. Untuk solusinya, tambahkan Thumbnail dari Youtube secara manual. Simpan kode ini sebelum HTML di atas

<noscript><img alt="YouTube" src="https://img.youtube.com/vi/PCehl2RwkEI/sddefault.jpg"/></noscript>

Jangan lupa edit ID Video yang ditandai. Untuk Kode lengkap pemasangan pada Mode HTML (berikut thumbnail) seperti ini

<noscript><img alt="YouTube" src="https://img.youtube.com/vi/PCehl2RwkEI/sddefault.jpg"/></noscript>
<div class="youtube" data-embed="PCehl2RwkEI">
    <div class="play-button"></div>
</div>

Selamat Mencoba !

Berita Lebih Baru Berita Lebih Lama
Tambahkan Komentar
comment url
Terima kasih telah berkomentar di Blog Kang Ismet.
  • Untuk menyisipkan Gambar, Kode, atau Kutipan silahkan klik Tab Sisipkan di atas.
  • Emoji yang bisa digunakan pada komentar :), :D, :( <3, :love dan :top
  • Untuk melihat Komentar yang telah ditambah sisipan kunjungi DEMO
Masukkan URL Gambar atau Potongan Kode, atau Quote, lalu klik tombol yang kamu inginkan untuk di-parse. Klik tombol Salin Kode! lalu paste ke kolom komentar.


image quote pre code
Belum Ada Komentar