0
このコードが機能しないのはなぜですか?私はすべての円の要素を取得しているし、すべての円を20ピクセルずつ増やしますが、大きくなることはありません。そのブロック内のConsole.logが機能するので、何が問題なのか分かりません。あなたが持っているアイコンを読み込んでも、幅を大きくするとアイコンが大きくなりませんか?
var circles = document.getElementsByClassName('circle')
console.log(circles)
var width = 1;
var id = setInterval(frame, 10);
function frame() {
if (width >= 100) {
clearInterval(id);
$('#loadscreen').css('display','block')
bar.style.display = 'none'
$('#circles').css('display','none')
} else {
width++;
bar.style.width = width + '%';
//loop for each circle
for(i=0;i<circles.length;i++) {
// increment width of circles by 20 pixels on every loop
circles[i].style.width += '20px'
}
}
}
}
に移動し、文字列を数値に変換するには?最初にevalを見て、それが何で、何をしているのかを見てみましょう。 parseInt()やparseFloat()などのより良い方法があります。また、 'fool proof way'は重要ではありません.JavaScriptを使用してDOMの幅を設定すると、CSSによって上書きされないため、このプロパティはDOMにインラインで追加されます。とにかくCSS値よりも優先されます。 – Adriani6
'elem.style.width'を使用して値を取得すると、特定の状況で失敗します。しかし、実際にはparseFloatを使用することはおそらく技術的に正しい数値を取得する方法ですが、両方ともこの状況で正常に動作します – treeseal7
そうです。私の悪いことはそれに注意を払わなかったが、evalを使うことはまだ立っている。ちょうどそれが働くからといって、そうするべきではない。あなたがparseInt/parseFloatのような機能を持つこの特定の目的のために、文字列を数値に変換するために使用するべきではないJavascript実行可能ファイルへの文字列を解析するので、evalの実行は遅くなります。 – Adriani6