2016-11-22 12 views
1

透明領域に影響を与えずに画像に色を付ける方法が不思議です。私は、ハード遷移を伴うグラデーションを適用したいと言わなければならない。透明領域に影響を与えずに画像に色を付ける方法は?

私はsvgで実装しようとしましたが、グラデーションのアニメーションに問題があります。

私はマスクを通してそれを作ろうとしましたが、ウェブキットでのみ正しく動作します。

グラデーションを使ってdivを作成するオプションがありました。その上に背景(私は他のサイトで見たことがある)を使って写真を置いていましたが、背景には気付かない目。

デフォルト画像:

それは次のようになります。

アニメーション化することが可能です:

答えをありがとう! :)

+0

あなたは私たちがすべてのコードを見ることができていますか? –

+0

@MatthewWilcoxson私はあなたにどのようなコードを表示できるかわかりません。 – Des1re

+0

*おそらく* CSSフィルタを備えたものですが、単純ではありません。 –

答えて

0

完璧ではないが、初めになります

.base { 
 
    width: 300px; 
 
    height: 600px; 
 
    overflow: hidden; 
 
    position: relative; 
 
    background-color: lightgreen; 
 
} 
 

 
.test { 
 
    width: 300px; 
 
    height: 200px; 
 
    background-image: url(https://i.stack.imgur.com/sklUO.png); 
 
    background-size: 100%; 
 
    position: absolute; 
 
    animation: move 12s infinite linear; 
 
} 
 

 
.t1 { 
 
    top: 0px; 
 
    background-position: 0px 0px; 
 
    filter: sepia(100%) saturate(200) hue-rotate(40deg); 
 
} 
 
.t2 { 
 
    top: 200px; 
 
    background-position: 0px -200px; 
 
    filter: sepia(100%) saturate(200) hue-rotate(130deg); 
 
    animation-delay: -3s; 
 
} 
 
.t3 { 
 
    top: 400px; 
 
    background-position: 0px -400px; 
 
    filter: sepia(100%) saturate(200) hue-rotate(220deg); 
 
    animation-delay: -6s; 
 
} 
 
.t4 { 
 
    top: 600px; 
 
    background-position: 0px -600px; 
 
    filter: sepia(100%) saturate(200) hue-rotate(310deg); 
 
    animation-delay: -9s; 
 
} 
 

 

 
@keyframes move { 
 
    from { 
 
    top: -200px; 
 
    background-position: 0px 200px; 
 

 
    } 
 
    to { 
 
    top: 600px; 
 
    background-position: 0px -600px; 
 

 
    } 
 
} 
 

 

 

 

 
body { 
 
}
<div class="base"> 
 
<div class="test t1"></div> 
 
<div class="test t2"></div> 
 
<div class="test t3"></div> 
 
<div class="test t4"></div> 
 
</div>

+0

私はそれを理解しているので、私はフィルターを使用します。私はちょうどrgbだけでなく、絶対にどんな色でもなければならないが、アイデアは面白い。 – Des1re

+0

ありがとうございます!私はフィルタを作ることが可能であることに気づいた!それはIEで動作しませんが残念ですが、私はサイトの入口で、サイトを使用するために通常のブラウザをダウンロードする必要があります:D – Des1re

0

ちょっと考えれば、画像の形が切り取られているpngを作成する必要があるかもしれません。あなたの画像は一番下に表示されます。その後、divで不透明度が少ししかない色のdivを持つことができます。&最後に、新しいpng(倒立バージョン)を一番上のレイヤーにします。これは機能するかもしれません。

私に知らせてください。

ありがとうございます!

+0

私は透明な領域=背景とデフォルトのイメージ=透明な領域、私の背景が動的なので、カットアウトPNGで行うことはできません。 不透明度が1%の場合、下のdivにグラデーションが表示されます。 私があなたを理解できない場合は、https://jsfiddle.net/で例を挙げてください。 – Des1re

+0

ダイナミックな背景はどういう意味ですか?色は動的です/画像自体は動的ですか? – realtymarker

+0

このようにするhttps://jsfiddle.net/hjvxcu92/ 最初に、背景サイズ:カバーの画像がありました。このオプションに戻ると、グラデーションイメージで動作するようになります。 – Des1re

関連する問題