当サイト使用テーマ・サーバー
\ 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
に各色のクラス名を渡して呼び出します。