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.
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
Posting Komentar