2016-10-21 7 views
0

ポップアップは、CSS3の遷移プロパティと不透明度を使用して5秒後にスムーズに表示され、フルスクリーンを表示しますが、一度に表示されます。5秒後にポップアップが円滑に表示されるようにするにはどうすればよいですか?

JSFiddle:https://jsfiddle.net/dnvk87xL/

var element = document.getElementById("popup"); 
 

 
var t=setTimeout(openPopUp,5000); 
 
function openPopUp() { 
 
    element = document.getElementById("popup"); 
 
    element.style.display = "block"; 
 
    element.style.opacity = "1"; 
 
}
#popup{ 
 
    position: fixed; 
 
    height:100%; 
 
    background-color: green; 
 
    display: none; 
 
    opacity: 0; 
 
    -webkit-transition: opacity 0.7s; 
 
    transition: opacity 0.7s; 
 
}
<div> 
 
    <div id="popup"> 
 
    I'm gonna appear smoothly after 5 seconds 
 
    </div> 
 
    <p> Website content </p> 
 
</div>

答えて

2

"ディスプレイ" アニメーション可能CSSのプロパティではありません。代わりに、「可視性」を試してみてください。

var element = document.getElementById("popup"); 
 

 
var t=setTimeout(openPopUp,5000); 
 
function openPopUp() { 
 
    element = document.getElementById("popup"); 
 
    element.style.visibility = "visible"; 
 
    element.style.opacity = "1"; 
 
}
#popup{ 
 
    position: fixed; 
 
    height:100%; 
 
    background-color: green; 
 
    display: block; 
 
    visibility: hidden; 
 
    opacity: 0; 
 
    -webkit-transition: opacity 0.7s; 
 
    transition: opacity 0.7s; 
 
}
<div> 
 
    <div id="popup"> 
 
    I'm gonna appear smoothly after 5 seconds 
 
    </div> 
 
    <p> Website content </p> 
 
</div>

0

あなたはbegginingからdisplay: block;を設定しないのはなぜあなたのsetTimeout

var timer = setTimeout(function(){ 
    element.FadeIn('slow'); 
}, 5000); 
+1

私はjavascriptのアニメーションにほとんど常に望ましいCSSアニメーションを使用している頃は推測... –

1

でjQueryの機能FadeInを使用することができますか? Zインデックスを追加してバックグラウンドに移動してから変更してください。それをチェックアウト:

var element = document.getElementById("popup"); 
 

 
var t=setTimeout(openPopUp,5000); 
 
function openPopUp() { 
 
    element = document.getElementById("popup"); 
 
    element.style.opacity = "1"; 
 
    element.style.zIndex = "1"; 
 
}
#popup{ 
 
    position: fixed; 
 
    height:100%; 
 
    background-color: green; 
 
    display: block; 
 
    opacity: 0; 
 
    -webkit-transition: opacity 0.7s; 
 
    transition: opacity 0.7s; 
 
    z-index:-1; 
 
}
<div> 
 
    <div id="popup"> 
 
    I'm gonna appear smoothly after 5 seconds 
 
    </div> 
 
    <p> Website content </p> 
 
</div>

+0

これはアニメーションを解決するが、Webページのコンテンツは最初から見えないポップアップで覆われています。 「ウェブサイトのコンテンツ」というテキストを選択することはできません。ボタンやリンクがあればクリックできません。 –

+0

@Ondra Koupil、そうです。このような問題を避けるために、私の回答を修正しました(Z-インデックスを使って)。 –

+0

私は質問をしたときにこれを指定していたはずですが、そうすることで、ユーザーがコンテンツをクリックできなくなる不透明度の0の部分があるため、5秒間Webサイトが役に立たなくなります。 – Bossan

関連する問題