前提
エラーは出ませんが、CSSのアニメーションが作動しません。
お分かりの方、ご教授いただければ幸いです。
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="stylesheet" href="style.css" /> 6 <title>Document</title> 7 </head> 8 <body> 9 <main> 10 <img id="gazou" src="img/target.svg" alt="" /> 11 </main> 12 <script src="main.js"></script> 13 </body> 14</html> 15
css
1.turn { 2animation:turn 1s; 3} 4 5@keyframes turn { 6to { 7transform:rotateY(1turn); 8} 9}
js
1const gazou = document.getElementById("gazou"); 2console.log(gazou); 3 4let observer = new IntersectionObserver(callback); 5 6observer.observe(gazou); 7console.log(observer); 8gazou.classList.add("turn"); 9 10function callback() { 11 gazou.classList.add("turn"); 12} 13
コードをコピペして画像だけ別のに差し替えたら動いてます。
https://jsfiddle.net/5sxyLrca/
SVG画像でも大丈夫でした。
https://jsfiddle.net/5sxyLrca/1/
ごめんなさい勘違い。スクロールでアニメーションさせたいんですね。
返答ありがとうございます。どうぞよろしくお願いいたします。
オブザーバー動いてはいるんですよね。クラスをつけて数行後に外すっていう処理してみたら、つけてはずしてくれてるのは見えるのですが、要素が画面に見えてないのにつけはじめるんですよねぇ。
ちなみに、yukarinさんのかいていた、
console.log(observer);
gazou.classList.add("turn");
ここのaddの行は邪魔だったので消しました。
ページ読み込まれた瞬間にturnがついちゃう。
ご回答いただきありがとうございました!
回答2件
あなたの回答
tips
プレビュー