javascript初心者です。
Chart.jsのグラフのアニメーションがjavascriptが読み込まれた際に動いているため
指定の位置までスクロールするとフェードインされるスクロールアニメーションの後に、表示される時には既にグラフのアニメーションが終わってしまいます。
そこで画面に表示したタイミングでアニメーションが開始されるinview.jsを使用しましたがうまくいかず、設置後は表示されなくなりました。
スクロールアニメーションが終わった後にグラフのアニメーションが始まる方法がありましたら、ご指導宜しくお願い致します。
HTML
1<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script> 2<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 3<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script> 4<script src="js/jquery.inview.min.js" type="text/javascript"></script> 5 6 <div class="fadein"> 7 <canvas id="doughnut07"></canvas> 8 </div> 9 10<section> 11/*▼▼▼スクロール効果▼▼▼*/ 12$(function(){ 13 $(window).scroll(function (){ 14 $('.fadein').each(function(){ 15 var elemPos = $(this).offset().top; 16 var scroll = $(window).scrollTop(); 17 var windowHeight = $(window).height(); 18 if (scroll > elemPos - windowHeight + 400){ 19 $(this).addClass('scrollin'); 20 } 21 }); 22 }); 23}); 24 25/*▼▼▼グラフ▼▼▼*/ 26$(function() { 27 $('.doughnut07').on('inview', function(event, isInView) { 28var data = [ 29 { 30 value: 53,/*男性*/ 31 color:"#feb0c1" 32 }, 33 { 34 value: 46,/*女性*/ 35 color: "#f8f8f8", 36 } 37]; 38 39var myDoughnut = new Chart(document.getElementById("doughnut07"). 40getContext("2d")).Doughnut(data, { 41 tooltipTemplate: "<%=value%> %", 42 animation:true, 43 enabled:false, 44}); 45}); 46}); 47 48</section> 49
css
1 2.fadein { 3 opacity : 0; 4 transform : translate(0, 50px); 5 transition : all 1000ms; 6} 7 8/* 画面内に入った状態 */ 9.fadein.scrollin { 10 opacity : 1; 11 transform : translate(0, 0); 12} 13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/01 18:27
2021/02/01 22:59