【目標】
「要素が見えたタイミングで、左から右へとグラフが伸びるアニメーション」を作ろうとしています。
【解決したいこと】
左から右へグラフが伸びるアニメーション自体は成立していますが
「要素が見えたタイミングで」という条件がクリアできていません。この条件を解決したいです。
【現状】
要素が見えたタイミングを解決するために「jquery.inview.js」を取り入れてみましたが
上手く動作させられていません。
【現在のコード】
js
1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script> 2<script src="jquery.inview.js" type="text/javascript"></script> 3<script type="text/javascript"> 4 //.graphが画面内に入ったら.animeを付与 5 $('.graph').on('inview', function() { 6 $(this).addClass("anime"); 7 }); 8</script>
「jquery.inview.js」を使用して画面内に入った時に「.graph」へ「.anime」を付与する方法を考えています。
html
1 2 <!--スクロールのための余白部分--> 3 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 4 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 5 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 6 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 7 8 <div class="graph"> 9 <span class="block bar-01"> 10 </span> 11 <span class="block bar-02"> 12 </span> 13 </div>
CSS
1body {background-color: #272b34;} 2 3@keyframes expand { 4 from {width: 0%;} 5 to {width: 100%;} 6} 7.graph.anime{ 8 width: 0%; 9 animation: expand 1.5s ease forwards; 10} 11.block { 12 display: block; 13 height: 100px; 14 float: left; 15} 16.bar-01{width: 40%; background: #334D5C;} 17.bar-02{width: 20%; background: #45B29D;}
「animation:expand」を指定して、@keyframesで横幅を伸ばし
グラフをアニメーションさせようと考えていますが、jsで「.anime」を付与すると動作しなくなってしまいます。
「要素が見えたタイミング」という前提でなければ、棒が伸びるというアニメーション自体は動作します。
(jsを使用せず、上記CSSの「.graph.anime」が「.graph」となった状態では動作する)
「要素が見えたらアニメーション開始」を実現する方法を
ご教授いただければと思います。どうぞよろしくお願い致します!
回答1件
あなたの回答
tips
プレビュー