Java Scriptの記述について、数時間悩みましたがうまくいきませんので、お知恵を貸してください。
横に伸びるグラフをサイトに追加したいと思っています。[こちら](https://deshinon.com/2019/03/02/kopipe-web-bou-gragh/)の横棒グラフのコードにて問題なく動くのですが、「DOMを読み込んで○秒後」ではなく、グラフを囲む要素が可視範囲に入ったら処理を実行したく試行錯誤しておりますがうまくいきません。
html
1<div class='wrapper'> 2 <div class='bar'> 3 <div class='bar-info japanese' data-total='80'> 4 Japanese 5 <span class='percent'>80</span> 6 </div> 7 </div> 8 9 <div class='bar'> 10 <div class='bar-info math' data-total='80'> 11 Math 12 <span class='percent'>80</span> 13 </div> 14 </div> 15 16 <div class='bar'> 17 <div class='bar-info science' data-total='60'> 18 Science 19 <span class='percent'>60</span> 20 </div> 21 </div> 22 23 <div class='bar'> 24 <div class='bar-info history' data-total='70'> 25 History 26 <span class='percent'>70</span> 27 </div> 28 </div> 29</div> 30 31<script 32 src="https://code.jquery.com/jquery-3.5.1.min.js" 33 integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" 34 crossorigin="anonymous"></script> 35<script src="js/app.js"></script> 36
Java
1$(document).ready(function() { 2 function skillSet() { 3 $('.bar-info').each(function() { 4 total = $(this).data("total"); 5 $(this).css("width", total + "%"); 6 }); 7 $('.percent').each(function() { 8 var $this = $(this); 9 $({ 10 Counter: 10 11 }).animate({ 12 Counter: $this.text() 13 }, { 14 duration: 3000, 15 easing: 'swing', 16 step: function() { 17 $this.text(Math.ceil(this.Counter) + "%"); 18 } 19 }); 20 }); 21 }; 22 $(window).scroll(function (){ 23 $(".wrapper").each(function(){ 24 var ePosition = $(this).offset().top; 25 var scrolls = $(window).scrollTop(); 26 var windowHeight = $(window).height(); 27 if (scrolls > ePosition - windowHeight + windowHeight/5){ 28 skillSet(); 29 } 30 }); 31 }); 32}); 33
希望する動き
・class="wrapper"が可視範囲に入ってからグラフが横に伸びる(widthの追加)
・10%からスタートし、class="percent"の数値まで数字が増えて表示される
例:グラフの幅10%&10%と表示→1%ずつカウントが増えながらグラフが伸びる→70%の位置でグラフが止まり、70%と表示
現状
・グラフが横に伸びる処理はできている
・表示されるパーセンテージが10%のまま
例:グラフの幅10%&10%と表示→10%と表示されたままグラフが伸びる→70%の位置でグラフが止まり、10%と表示
どなたか修正必要箇所をご指導ください。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/10 11:04