2016-03-24 33 views
0

編集: 私は基本的にこのWebページが示す結果を達成しようとしています。 http://codepen.io/Chrislion_me/pen/rVqwbO雷効果CSS

私はHTML/CSSの世界全体ではかなり新しいです。 私はuniでプロジェクトのためにやっていることは、背景に雷の嵐の写真があり、画像の一部をフィルタリングするオーバーレイで覆われているホームページを作成することです。Picture of current website

基本的に写真はそのままの状態で固定しなければならないので、ページをさらにスクロールしてもそのような動きはしません[静止ライトニングストーム] [2]。

これは完全にうまくいきます。問題は、雷の嵐が正しく働くことができません。嵐は〜8秒ごとに数回点滅することを意味します。

コードの再生方法によっては、通常は白くなり、約8秒ごとに画像が点滅して再び白くなります。 どこが間違っているのか分かりませんが、もし私が助けてくれれば、私のコードの一部を掲載しました - それはイメージとボタンをホストするセクションです。

ありがとうございます! :)

HTML

<div id="bg" class="banner flashit"> 
<p>TEST TEXT</p> 
<ul class="actions"> 
<li><a href="#" class="button special big">Click here</a></li> 
</ul> 
</div> 

CSS

#bg{ 
    padding: 16em 0 13em 0; 
    background-attachment: fixed; 
    background-image: url("images/overlay.png"), url("../images/banner.jpg"); 
    background-position: center top; 
    background-size: cover; 
    line-height: 1.75; 
    text-align: center; 
    z-index: -2; 
} 
.banner { 
    padding: 16em 0 13em 0; 
    background-attachment: fixed; 
    background-image: url("images/overlay.png"), url("../images/banner.jpg"); 
    background-position: center top; 
    background-size: cover; 
    line-height: 1.75; 
    text-align: center; 
    -webkit-filter: brightness(3); 
    filter: brightness(3); 
    -o-filter: brightness(3); 
    -moz-filter: brightness(3); 
    z-index: -1; 
} 
.flashit{ 
    -webkit-animation: flash ease-out 10s infinite; 
    -moz-animation: flash ease-out 10s infinite; 
    animation: flash ease-out 10s infinite; 
    animation-delay: 2s; 
} 
@-webkit-keyframes flash { 
    from { opacity: 0; } 
    92% { opacity: 0; } 
    93% { opacity: 0.6; } 
    94% { opacity: 0.2; } 
    96% { opacity: 0.9; } 
    to { opacity: 0; } 
} 
@keyframes flash { 
    from { opacity: 0; } 
    92% { opacity: 0; } 
    93% { opacity: 0.6; } 
    94% { opacity: 0.2; } 
    96% { opacity: 1; } 
    to { opacity: 0; } 
} 

答えて

1

アニメーションのためのあなたのCSSの問題がいくつかあります。特にキーフレーム。

キーフレームの場合、from{}to{}を使用すると、「開始」と「終了」と同じです。 の間にパーセンテージを使用することはできません。あなたはそのルートに行くときに使うことができるすべてからです。 from{}to{}を使用している場合、「中」のステップはありません。

キーフレームにパーセンテージを使用する場合は、すべての手順がパーセンテージである必要があります。したがって、from()を使用するのではなく、to{}の代わりに0%を使用し、100%を使用します。

すべてのパーセンテージが90%の範囲に設定されていて、アニメーションが10秒間であるため、不透明度が0%から約11秒(2秒遅れ、その後9アニメーションの秒数)、画像はただ透明で、何もないように見えます。パーセンテージをに変更すると、アニメーションの開始時に点滅してから、不透明なイメージで終了すると、これがかなり役に立ちます。

は、最終的には変更は単にキーフレームを微調整に降りてきた:

@-webkit-keyframes flash { 
    0% { opacity: 1; } 
    2% { opacity: 0; } 
    3% { opacity: 0.6; } 
    4% { opacity: 0.2; } 
    6% { opacity: 0.9; } 
    100% { opacity: 1; } 
} 
@keyframes flash { 
    0% { opacity: 1; } 
    2% { opacity: 0; } 
    3% { opacity: 0.6; } 
    4% { opacity: 0.2; } 
    6% { opacity: .9; } 
    100% { opacity: 1; } 
} 

を将来的には、それはあなたがあなたの問題のjsFiddleを設定することができれば役に立つ答えを得るために、多くの場合簡単です。

jsFiddle here私はあなたの画像にアクセスできないため、修正されたキーフレームと異なる画像を作成しました。

+0

私はそれを試みましたが、テンプレートではうまくいかず、ここから雷のコードを取得しました。 http://codepen.io/Chrislion_me/pen/rVqwbO これは永久にこのように見えるので、正しく表示されません。 http://imgur.com/yxxvPVv –

+0

イメージの明るさを引き出すコードをCSSから削除しましたが、残念ながらリンクで追いかけているのと同じ効果が得られません。 http://codepen.io/Chrislion_me/pen/rVqwbO どのように私はそれを見えるようにするためにコードを修正することもできますか? –

+0

@DeonWilliamsこのサンプルの多くは、使用されている画像に依存しています。フィルターはすべての画像で機能しないか、調整が必要な場合があります。可能であれば、* exact *同じ画像を使用しない限り、* exact *同じ外観を得ることはありません。本当にあなたはそれを微調整して、あなたが欲しいところに行くために遊んでいなければなりません。私はそれをすることができますが、私が思うものが審美的に満足していると思うものがあなたが望むものと一致するかどうかを知る方法はありません。あなたはそれを自分で行う必要があります。 – Scott

関連する問題