2016-08-12 62 views
0

我創建了一個帶有背景圖片的div,並將css動畫應用到它(從左到右過渡)。 (附截圖)enter image description here我的問題是:如何在無需重新加載頁面的情況下再次播放它?這裏是我的html:CSS動畫重複無需重新加載

<div class="cityscape"> 
    <div class="chef"></div> 
</div> 

這裏是我的CSS:

.chef { 
    background-image: url("../img/chef.png"); 
    background-position: left bottom; 
    background-size: auto 100%; 
    position: absolute; 
    background-repeat: no-repeat; 
    width:700px; 
    height:60px; 
    margin-top:90px; 
} 

/動畫廚師/

@-webkit-keyframes move 
    { 
     from { 
     left: 0; 
    } 

    to { 
     left: 50%; 
    } 
} 

@keyframes move 
{ 
    from { 
     left: 0; 
    } 
     to { 
     left: 50%; 
    } 

     to { 
     left: 100%; 
    } 

} 


.chef { 
    padding-right: 20px; 
    left: 100%; 
    position: absolute; 
    -webkit-animation: move 40s; 
    animation: move 40s; 
} 

.chef img { 
    -webkit-transition: all 10s ease-in-out; 
    -moz-transition: all 10s ease-in-out; 
    -o-transition: all 10s ease-in-out; 
    -ms-transition: all 10s ease-in-out; 
    border-radius:60px; 
    transition-duration: 10s; 
    } 

回答

1

只需添加infinitemove動畫的結束。

CSS

-webkit-animation: move 40s infinite; 
animation: move 40s infinite; 

.chef { 
 
    background-image: url("../img/chef.png"); 
 
    background-position: left bottom; 
 
    background-size: auto 100%; 
 
    position: absolute; 
 
    background-repeat: no-repeat; 
 
    width:700px; 
 
    height:60px; 
 
    margin-top:90px; 
 
} 
 

 
@-webkit-keyframes move 
 
    { 
 
    from { 
 
     left: 0; 
 
    } 
 

 
    to { 
 
     left: 100%; 
 
    } 
 
} 
 

 
@keyframes move 
 
{ 
 
    from { 
 
     left: 0; 
 
    } 
 

 
    to { 
 
     left: 100%; 
 
    } 
 

 
} 
 

 

 
.chef { 
 
    padding-right: 20px; 
 
    left: 100%; 
 
    position: absolute; 
 
    -webkit-animation: move 40s infinite; 
 
    animation: move 4s infinite; 
 
} 
 

 
.chef img { 
 
    -webkit-transition: all 10s ease-in-out; 
 
    -moz-transition: all 10s ease-in-out; 
 
    -o-transition: all 10s ease-in-out; 
 
    -ms-transition: all 10s ease-in-out; 
 
    border-radius:60px; 
 
    transition-duration: 10s; 
 
    }
<div class="cityscape"> 
 
    <div class="chef">hello</div> 
 
</div>


附:我也注意到,對於你的動畫,你打電話to兩次,試圖讓它停止在50%,然後繼續。這不是做到這一點的方法。如果你想做到這一點,請使用百分比代替,如下所示:

@keyframes example { 
    0% {left: 0;} 
    50% {left: 50%} 
    100% {left: 100%} 
} 
+0

謝謝你一百萬次獵人。有效!希望你不要介意我是否再問一個問題。我想知道您是否可以對Safari中的轉換爲什麼無法正常運行有所瞭解。出於某種原因,它在屏幕的中途結束。再次,非常感謝! –

+0

@LizH。我意識到我並沒有將「無限」添加到Safari使用的'-webkit-'動畫中。 '-webkit-animation:移動40s無限;' –