プログレスバーのようなものを作成しようとしていますが、うまく動作しないというか、疑問点と追加したい動きがあるのですが
どなたかご教授いただけますでしょうか。
参考は下記になります。
https://designsupply-web.com/knowledgeside/2930/
完成の動きのイメージはcssで記載しているところの、
transform: scaleX(0);がscaleX(1);
になるイメージになります。
png画像が黒いベタで塗られていくような、、
【疑問点】
・参考のページでは、何故img要素を取得するのに、$("<img>")という<>つきの書き方をしているのか。
・setInterval構文無しでも動く気がしましたが動きませんでした。。何故なんでしょうか、、??
【追加したい動き】
プログレスの動きが完了した時にコールバックとしてロード画面を消したいです。
html
1<div id="loader"> 2 <div class="loading_logo"> 3 <div class="loading_bg"></div> 4 <div class="loading_progress"></div> 5 <div class="loading_cover"></div> 6 </div> 7</div>
css
1#loader { 2 width: 100%; 3 height: 100%; 4 background-color: #fff; 5 position: fixed; 6 top: 0; 7 left: 0; 8 z-index: 100; 9.loading_logo { 10 width: 200px; 11 height: 200px; 12 position: relative; 13 top: 50%; 14 left: 50%; 15 transform: translate(-50%, -50%); 16 .loading_bg { 17 background: #666; 18 position: absolute; 19 top: 0%; 20 left: 0%; 21 width: 100%; 22 height: 100%; 23 } 24 .loading_progress { 25 position: absolute; 26 top: 0%; 27 left: 0%; 28 width: 100%; 29 height: 100%; 30 background: #000; 31 transform: scaleX(0); 32 transform-origin: left; 33 transition: transform 1s linear; 34 } 35 .loading_cover { 36 position: absolute; 37 top: 0; 38 width: 100%; 39 height: 100%; 40 background: url(../img/loading_logo.png) no-repeat; 41 } 42} 43}
javascript
1$(function(){ 2 var progress = 0; 3var imgCount = $('img').length; 4$("img").each(function(){ 5 var src = $(this).attr('src'); 6 $("<img>").attr('src',src).on('load',function(){ 7 progress++; 8 }); 9}); 10 11setInterval(function(){ 12 $(".loading_progress").css({ 13 "transform" : 'scaleX('+ progress / imgCount +')' 14 }); 15}, 1000); 16 17 18 19});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 09:04
2020/03/16 09:07
2020/03/16 09:46
2020/03/16 09:51
2020/03/16 13:42
2020/03/17 15:37
2020/03/18 00:25
2020/03/18 01:48
2020/03/18 02:26
2020/03/18 07:20
2020/03/18 07:49
2020/03/19 05:52