2016-12-29 98 views
0

我目前使用此代碼:過渡到另一個

#div { background-image: url('imageurl.com'), url('imageurl2.com'); position: absolute !important; right: 0; left: 0; height: 210px !important; display: table-cell !important; vertical-align: middle !important;} 

@keyframes FadeInOut { 
0% { 
    opacity:1; 
} 
45% { 
opacity:1; 
} 
55% { 
opacity:0; 
} 
100% { 
opacity:0; 
} 
} 

#div img.top { 
animation-name: FadeInOut; 
animation-timing-function: ease-in-out; 
animation-iteration-count: infinite; 
animation-duration: 10s; 
animation-direction: alternate; 
} 

實際上,我想實現這個網站從演示3代碼: http://css3.bradshawenterprises.com/cfimg/

在該演示中,在一個div中有兩個圖像,代碼只是在定時器中淡入第一個圖像。我嘗試着使用上面的代碼來實現這個功能,但是它會淡入淡出。有誰知道我錯過了什麼?

回答

3

如果通過背景圖片可以使用僞元素需要實現:

#cf2 { 
 
    position:relative; 
 
    height:281px; 
 
    width:450px; 
 
    margin:0 auto; 
 
    background-image: url("http://css3.bradshawenterprises.com/images/Windows%20Logo.jpg"); 
 
} 
 

 
#cf2::after{ 
 
    content: ' '; 
 
    display: block; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    z-index: 1; 
 
    background-image: url("http://css3.bradshawenterprises.com/images/Turtle.jpg"); 
 
    background-repeat: no-repeat; 
 
    background-position: 50% 0; 
 
    background-size: cover; 
 
} 
 

 
@keyframes cf3FadeInOut { 
 
    0% { 
 
    opacity:1; 
 
    } 
 
    45% { 
 
    opacity:1; 
 
    } 
 
    55% { 
 
    opacity:0; 
 
    } 
 
    100% { 
 
    opacity:0; 
 
    } 
 
} 
 

 
#cf2::after { 
 
animation-name: cf3FadeInOut; 
 
animation-timing-function: ease-in-out; 
 
animation-iteration-count: infinite; 
 
animation-duration: 10s; 
 
animation-direction: alternate; 
 
}
<div id="cf2"> 
 
</div>

+0

嘿,我試着使用你的代碼,但圖像永遠不會淡出。它只是呆在那裏。 – lolikols

+0

糟糕!它的工作原理,但它有一些問題縮放。例如,之前的div始終會保留在瀏覽器窗口中,但現在它似乎受限於左側,但在低分辨率窗口中查看時延伸到右側。你知道這可能是爲什麼嗎? – lolikols

+0

@lolikols,我已經更改了一些代碼,現在它必須正確地處理任何窗口大小。 [鏈接](https://jsfiddle.net/SerafimGray/mLu5Lh80​​/1/) –

1

這裏的實施,他們使用不同的<img>標籤顯示/隱藏圖片: 它們是絕對定位爲一個在其他的,一個是在頂部只是顯示和動畫隱藏(改變其不透明度) - 所以當頂一個具有透明度的底部有一個剛變爲可見= 0

@keyframes cf3FadeInOut { 
 
    0% { 
 
    opacity: 1; 
 
    } 
 
    45% { 
 
    opacity: 1; 
 
    } 
 
    55% { 
 
    opacity: 0; 
 
    } 
 
    100% { 
 
    opacity: 0; 
 
    } 
 
} 
 
#cf3 img.top { 
 
    animation-name: cf3FadeInOut; 
 
    animation-timing-function: ease-in-out; 
 
    animation-iteration-count: infinite; 
 
    animation-duration: 10s; 
 
    animation-direction: alternate; 
 
} 
 
#cf3 img { 
 
    position: absolute; 
 
    left: 0; 
 
} 
 
#cf3 { 
 
    position: relative; 
 
    height: 281px; 
 
    width: 450px; 
 
    margin: 0 auto; 
 
}
<div id="cf3" class="shadow"> 
 
    <img class="bottom" src="http://css3.bradshawenterprises.com/images/Turtle.jpg"> 
 
    <img class="top" src="http://css3.bradshawenterprises.com/images/Windows%20Logo.jpg"> 
 
</div>

+0

啊拍。有沒有辦法執行: – lolikols

+0

使用css? – lolikols

+0

@lolikols這意味着我直接從他們的網站使用圖像。他們使用2個不同的img標籤,這些標籤絕對定位在另一個之上,頂部的標籤只是顯示和隱藏動畫。我給答案加了解釋 – godblessstrawberry

相關問題