2016-06-29 7 views
0

これは簡単に修正できると確信しています。私はプリローダーがゆっくりとフェードアウトする必要があります。私はCSSアニメーションで試しましたが、うまくいきませんでした。誰かが私にjavascriptでどうすればいいのか教えてもらえますか?例のように、遷移は非常に粗いです。私はそれを望んでいない。プリローダーがフェードアウトしてコンテンツがフェードインします

<script> <!--Preloader--> 
var myVar; 

function preloader() { 
    myVar = setTimeout(showPage, 1500); 
} 

function showPage() { 
    document.getElementById("preloader").style.display = "none"; 
    document.getElementById("wrapper").style.display = "block"; 
} 
</script> 
表示ブロックとなしと

CODEPEN EXAMPLE

答えて

1

あなたのコードに次の変更を追加します。

#preloader { 
    transition:1s ease; 
} 

#wrapper { 
    opacity:0;/*Remove display and hide opacity*/ 
} 

function showPage() { 
    document.getElementById("preloader").style.opacity = 0; 
    document.getElementById("wrapper").style.opacity = 1; 
} 
1

遷移doent作業..

使用

var myVar; 

function preloader() { 
    myVar = setTimeout(showPage, 1500); 
} 

function showPage() { 
    document.getElementById("preloader").style.opacity = 0; 
    document.getElementById("wrapper").style.opacity = 1; 
} 

#preloader { 
    position: absolute; 
    z-index: 1000; 
    background-color:black; 
    width: 100vw; 
    height: 100vh; 
    color:white; 
    transition: 0.5s all linear 
} 
1

あなたはdisplaをアニメーション化することはできませんy:noneそれ自体は、不透明度をアニメートすることです(0など)。不透明度はまだその追加不透明た後は0である一方で、ブロック:1と

1

月があなたを助けます。この例を試してみてくださいすることをアニメーション化

あなたは、ディスプレイを追加します。

$(function() { 
 
    $("#loader-image").fadeIn(500, function() { 
 
    $("#loader-image").fadeOut(1000, function() { 
 
     $(".loader-container").fadeOut(1000, function() { 
 
     alert("loaded!"); 
 
     }); 
 
    }); 
 
    }); 
 
});
body { 
 
    background-color: black; 
 
} 
 
.loader-container { 
 
    background-color: yellow; 
 
    height: 200px; 
 
} 
 
#loader-image { 
 
    display: none; 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 

 
<body> 
 
    <div class="loader-container"> 
 
    <img src="image.png" alt="Image" id="loader-image" /> 
 
    </div> 
 
</body>

1

CSSトランジションを使用できます。隠されたクラスのスタイルを追加

#preloader { 
    position: absolute; 
    z-index: 1000; 
    background-color:black; 
    width: 100vw; 
    height: 100vh; 
    color:white; 
    display: block; 
    opacity: 1; // Add opacity 
    transition: 1s opacity ease-in; // Add transition 
} 

::へのあなたのプリローダーのスタイルを変更し

#preloader.hidden { 
    opacity: 0; 
} 

次にあなたが​​

function showPage() { 
     // Add the newly defined hidden class to the preloader element 
     document.getElementById("preloader").classList.add('hidden'); 
} 

Here呼び出すとき実施例です。

関連する問題