当サイト使用テーマ

\ SWELL【WordPressテーマ】 /
当サイト使用サーバー
\ レンタルサーバー【ConoHa WING】 /
プログラミング学習

この記事では、JavaScriptのライブラリ『Anime.js』を使って風船が中央から外側に向かってランダムに広がるアニメーションを実装するプログラミングコードを解説していきます。
最初に完成形を見ていきます。
画面の中央で作られた風船が外側に向かってランダムに広がっていきます。
See the Pen js-06 by aqua (@aqua-programdiary) on CodePen.
まずは、HTMLのコーディングをしていきます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">
<link rel="stylesheet" href="style.css">
<title>バルーンアニメーション</title>
</head>
<body>
<div class="container"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="main.js"></script>
</body>
</html>
<!DOCTYPE html>:
<html lang="ja">:
lang 属性にはページの言語が指定されています。<head>:
<meta charset="UTF-8">:
<meta name="viewport" content="width=device-width, initial-scale=1.0">:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">:
<link rel="stylesheet" href="style.css">:
style.css を外部リンクしています。<title>バルーンアニメーション</title>:
<body>:
body 要素の開始です。<div class="container"></div>:
div 要素です。ここにアニメーション要素が追加されます。<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>:
<script src="main.js"></script>:
main.js を読み込んでいます。ここにバルーンアニメーションの設定が含まれています。次にCSSでスタイルを設定していきます。
@charset 'utf-8';
body {
background-color: #95c0ec;
overflow: hidden;
}
.container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.blue {
position: absolute;
color: blue;
}
.red {
position: absolute;
color: red;
}
.green {
position: absolute;
color: green;
}
.yellow {
position: absolute;
color: yellow;
}
.pink {
position: absolute;
color: pink;
}
@charset 'utf-8';
body:
.container:
position: absolute; によって位置が絶対位置で指定されます。top: 50%; および left: 50%; によって画面中央に配置されます。transform: translate(-50%,-50%); によって中央配置が微調整されます。.blue, .red, .green, .yellow, .pink:
position: absolute; によって位置が絶対位置で指定されます。color プロパティによってテキストカラーが指定されます。最後にJavaScriptのコーディングをして完成です。
今回は、Anime.jsを使っているのでAnime.jsの記入方法でコーディングしていきます。
const container = document.querySelector('.container');
function createBalloon(className) {
for (let i = 1; i <= 100; i++) {
const icon = document.createElement('i');
icon.classList.add(className);
icon.classList.add('bi');
icon.classList.add('bi-balloon-fill');
container.append(icon);
}
}
createBalloon('blue');
createBalloon('red');
createBalloon('green');
createBalloon('yellow');
createBalloon('pink');
function animateBalloons(className) {
anime({
targets: `.${className}`,
duration: 20000,
delay: anime.stagger(40),
easing: 'easeOutCirc',
translateX: function(){
return anime.random(-800,800);
},
translateY: function(){
return anime.random(-500,500);
},
scale: function(){
return anime.random(1,7);
},
});
}
animateBalloons('blue');
animateBalloons('red');
animateBalloons('green');
animateBalloons('yellow');
animateBalloons('pink');
const container = document.querySelector('.container');
.container 要素に対応します。function createBalloon(className) { ... }:
createBalloon 関数は、指定されたクラス名を持つバルーン要素をコンテナに作成するための関数です。createBalloon('blue'); createBalloon('red'); ...:
createBalloon に各色のクラス名を渡して呼び出します。function animateBalloons(className) { ... }:
animateBalloons 関数は、指定されたクラス名を持つバルーン要素のアニメーションを設定するための関数です。targets: .${className} によって、指定されたクラス名を持つバルーン要素がアニメーションの対象となります。duration にはアニメーションの継続時間をミリ秒単位で指定します。delay: anime.stagger(40) によって、各要素のアニメーション開始時間がスタッガードされます。translateX, translateY は、ランダムな位置への移動を指定します。scale は、ランダムなスケールを指定します。animateBalloons('blue'); animateBalloons('red'); ...:
animateBalloons に各色のクラス名を渡して呼び出します。