cara membuat animasi gambar di java script

Saya sempat mengira, kalau animasi stiker di facebook menggunakan gif, ternyata bukan.

Animasi tersebut menggunakan javascript dengan mengubah posisi backgound.

Coba saja klik kanan pada stikernya, kemudian pilih inspect element, maka kita akan mendapatkan kode seperti ini.

Terlihat pada kode di atas, stikernya menggunakan backgound image. Ketika kita membuka backgound tersebut, kita akan mendapatkan gambar seperti berikut ini.

Sekarang, bagaimana kalau kita coba membuatnya.

KODE HTML

Buat kode HTML untuk menampilkan stikernya.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Facebook Page Plugin</title>
<meta content='width=device-width, initial-scale=1' name='viewport'>
<style>
body {
  background-color:transparent;
  margin:0;
  padding:0;
}
iframe{
    border:0;
    width: 100%;
    height: 99vh;
}

</style>

<script>
function getQueryVariable(variable) {
 var query = window.location.search.substring(1);
 var vars = query.split("&");
 for (var i=0;i<vars.length;i++) {
  var pair = vars[i].split("=");
  if(pair[0] == variable){return pair[1];}
 }
 return(false);
}

</script>
</head>
<body>

    <script>

    var style = encodeURIComponent( "<head><style>.gist .blob-code-inner { font-size: 13px !important; }</style></head>" );
    var gistURL = encodeURIComponent( getQueryVariable("url") + ".js" );

    // bikin element script untuk load gist
    var iframe = document.createElement('iframe');
    iframe.src = "data:text/html;charset=utf-8,"+style+"%3Cbody%3E%3Cscript%20src%3D%22"+gistURL+"%22%3E%3C%2Fscript%3E%3C%2Fbody%3E";
    document.getElementsByTagName('body')[0].appendChild(iframe);

    </script>

</body>
</html>


KODE CSS

.sticker {
    position: relative;
    height: 80px;
    width: 80px;
    background: url(burung.png);
    background-size: 320px 320px;
    cursor: default;
    background-position: 0px 0px;
    image-rendering: -webkit-optimize-contrast;
}

Java script

Javascript fungsinya untuk membuat animasi, mengubah posisi background.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Facebook Page Plugin</title>
<meta content='width=device-width, initial-scale=1' name='viewport'>
<style>
body {
  background-color:transparent;
  margin:0;
  padding:0;
}
iframe{
    border:0;
    width: 100%;
    height: 99vh;
}

</style>

<script>
function getQueryVariable(variable) {
 var query = window.location.search.substring(1);
 var vars = query.split("&");
 for (var i=0;i<vars.length;i++) {
  var pair = vars[i].split("=");
  if(pair[0] == variable){return pair[1];}
 }
 return(false);
}

</script>
</head>
<body>

    <script>

    var style = encodeURIComponent( "<head><style>.gist .blob-code-inner { font-size: 13px !important; }</style></head>" );
    var gistURL = encodeURIComponent( getQueryVariable("url") + ".js" );

    // bikin element script untuk load gist
    var iframe = document.createElement('iframe');
    iframe.src = "data:text/html;charset=utf-8,"+style+"%3Cbody%3E%3Cscript%20src%3D%22"+gistURL+"%22%3E%3C%2Fscript%3E%3C%2Fbody%3E";
    document.getElementsByTagName('body')[0].appendChild(iframe);

    </script>

</body>
</html>

Pada kode di atas kita menggunakan fungsi setInterval() untuk melakukan animasi dengan waktu 100 milidetik. Setiap rentang waktu tersebut, posisi background akan berubah sesuai dengan nilai x dan y.






Komentar

Postingan populer dari blog ini

Fungsi java script

HARI KE 51 PKL DI CYBERLABS

Apa itu CSS?pengertian,fungsi dan cara kerjanya