2

ラッパーの背景画像に連続フェード効果を追加したいと思います。キーフレーム アニメーションを使用して背景画像を移動させることができることは知っていますが、この手法を使用してフェード効果が可能かどうか疑問に思っていました。

http://css-tricks.com/snippets/css/webkit-keyframe-animation-syntax/

例えば:

@-webkit-keyframes fontbulger {
0% {
    font-size: 10px;
}
30% {
    font-size: 15px;
}
100% {
    font-size: 12px;
}

私の完璧な状況になると...

@-webkit-keyframes fontbulger {
0% {
    background: url(image.png, 1);
}
30% {
    background: url(image.png, 0.5);
}
100% {
    background: url(image.png, 1);
}

...0.5 は 50% の可視性になります。もちろん、この提案は機能しません。これを達成する方法はありますか?透明度をRGB 値に適用できることは知っていますが、画像に適用したいと思います。

4

1 に答える 1

2

あなたが求めているように、背景画像の不透明度に直接影響を与える方法を現在認識していません。考えられる回避策は次の 2 つです。

1. 純粋な CSS3 の方法 (まだ十分にサポートされていません)

疑似要素を使用して使用をbackground-image許可opacityし、すべてを純粋なcssとして保持しますが、拡張機能でのみ機能しませんでしwebkit(明らかに疑似要素のアニメーションをサポートしていません)moz(IE10をテストできませんでした) ... それについてのフィードバックは役に立ちます)。このコードを使用したこの fiddleについて、 Firefox と Chrome を比較してください。

HTML

<div class="bkgAnimate">Foreground text</div>

CSS

.bkgAnimate {
    width: 300px; /*only for demo*/
    height: 200px; /*only for demo*/
    position: relative;
    z-index: 1; /* make a local stacking context */
}

.bkgAnimate:after {
    content: '';
    position: absolute;
    top:0;
    right: 0;
    bottom: 0;
    left: 0;
    background: url(src="your/image/path/file.png") no-repeat;
    z-index: -1;  
    -webkit-animation: fontbulger  3s infinite;
    -moz-animation:    fontbulger  3s infinite;
    -ms-animation:     fontbulger  3s infinite;
}
@-webkit-keyframes fontbulger {
    0%   { opacity: 1; }
    30%  { opacity: 0.5; }
    100% { opacity: 1; }
}
@-moz-keyframes fontbulger  {
    0%   { opacity: 1; }
    30%  { opacity: 0.5; }
    100% { opacity: 1; }
}
@-ms-keyframes fontbulger  {
    0%   { opacity: 1; }
    30%  { opacity: 0.5; }
    100% { opacity: 1; }
}

2. HMTL ソリューションが雑然としている (複数のブラウザーに対応している)

このフィドルが示すように、背景として実際のimgタグを配置するように変更することがwebkit、動作する唯一の方法であるように思われました。しかし、それはあなたにとって望ましくないかもしれません。以下を除いて、上記と同様のコード:

HTML

<div class="bkgAnimate">Foreground text 
  <img class="bkg" src="your/image/path/file.png"/>
</div>

上記のCSS変更

:afterセレクターを変更し、そのコードからandプロパティ.bkgAnimate .bkgを削除します。contentbackground

于 2012-05-07T01:48:52.207 に答える