ふと思い立ってマイクロインタラクションの実装方法について調べてみましたのでコードのメモと成果物を置いておきます。
使ったのは Airbnb が提供しているアニメーションライブラリの Lottie。After Effects で作ったアニメーションをブラウザやアプリ上で動かせるようになります。
今回はサンプルで配布されているハートのアニメーションをクリックしたら動くものを作ってみました。
コードと成果物
雑ですが取り急ぎ作ったものをそのまま。
vue でやれるようになりたい気持ちです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.6.4/lottie.min.js"></script>
<style>
g{
cursor: pointer;
}
</style>
</head>
<body>
<div id="lottie"></div>
<script>
var params = {
container: document.getElementById('lottie'),
renderer: 'svg',
loop: false,
autoplay: false,
path: "2415-twitter-heart.json"
};
var animation = lottie.loadAnimation(params);
$(function(){
$('#lottie').on('click',function(){
animation.play();
});
});
</script>
</body>
</html>
なるほど pic.twitter.com/kWcyVwAJZM
— sasaki (@shirokuro331) February 16, 2020
アニメーション作るのはまた別スキルの話ですが、こんな感じでマイクロインタラクション実現させてユーザー体験向上させる仕掛け作れるのは良いですね。