JS + Canvasで画像をプルプルふるわせる。
約 4 分
目次
概要
canvas + JSで画像をプルプル震わせる。
デモ
外部ウィンドウで開くソース
(function(){
var image_url = "/path/to/image_url.png"
var canavs = document.getElementById("canvas");
var context = canvas.getContext('2d');
var event_btn = document.getElementById("event_flg");
var base_image = {};
var event_flg = true;
var interval = 10;
//振れ幅の設定
var imPadding = {
x : 50, y: 50
};
//画像 initialization
var image = new Image();
image.src = image_url;
image.onload = function(){
canvas.width = image.width + imPadding.x;
canvas.height = image.height + imPadding.y;
pullImagePixels();
}
function pullImagePixels(){
if(event_flg){
context.clearRect(0, 0, canvas.width, canvas.height)
context.drawImage(image,
getRandomArbitary(0,imPadding.x),
getRandomArbitary(0,imPadding.y));
}
setTimeout(pullImagePixels,interval);
}
function getRandomArbitary(min, max) {
return parseInt(Math.random() * (max - min) + min,10);
}
//ボタンはんどら
event_btn.addEventListener("click",function(){
if(!event_flg){
event_btn.innerHTML = "■";
}else{
event_btn.innerHTML = "▶︎";
}
event_flg = (!event_flg);
});
})();
<canvas id="canvas"></canvas>
<button id="event_flg">■</button>
その他
setTimeout使ってるあたりがダサいですね。Promiseが使えるよう勉強します。
おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript130
- typescript67
- node.js54
- linux54
- 画像処理48
- amazon-aws48
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- next.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4