ここにリンク:wbrapist.github.io/slider/index.htmlなぜ、getComputedStyleは、ページリロード後にスライダーの幅に対して 'auto'を返しますか?
初めてページを読み込むと、getComputedStyleが有効な値を返します。しかし、単にCtrl + F5でページをリロードして、数秒間待ってからF5でリロードすれば、スライダのナビゲーションが中央の位置には表示されません。この時点で、ブラウザのコンソールを開いて、リロード(F5)後にgetComputedStyleが 'auto'値だけを返すことを確認できます。なぜこうなった?なぜ強制的にリロードした後(Ctrl + F5)、大丈夫ですか?
通知することができます:この場合、私のスライダのスライドスライドアニメーションも機能しません。 (そこすぎる)(getComputedStyleを介して値を取得)ここでは、コードのビット
をこのトラブルが
var sliderWidth = getComputedStyle(document.getElementsByClassName('slider')[0]).width;
function setSliderNavPosition() {
var nav = document.querySelector('.slider .navigation');
var navWidth = parseFloat(getComputedStyle(nav).width);
var slidersWidth = parseFloat(sliderWidth);
nav.style.left = ((slidersWidth/2) - (navWidth/2)) + 'px';
}
を少なくともChromeとMozillaで存在します。
おかげ屋! このイベントについて聞きましたが、「スクリプト」タグの「延期」属性は同じだと思いました。 –
@DmitryFateevページをロードすると、2つのメインイベントが発生します:DOMが準備完了(すべてのHTMLがロードされている)しているときは、 'DOMContentLoaded'です。次に、すべての外部リソース(CSS、イメージ)がロードされると 'load'イベントが発生します。 'defer'を使用すると、最初のイベントが発生するのを待ちますが、もう1つは発生しません。あなたの場合、私はそれが問題を引き起こしていたCSSだと思います。まだロードされていませんでした。 – blex
助けてくれてありがとう。 –