2017-09-17 44 views
1

我有CSS代碼,動畫圖像,但我想有一個按鈕,使用jQuery觸發動畫。如何用jQuery觸發動畫?

這是我的CSS和HTML代碼,但它不工作:

jQuery.noConflict(); 
 
$(document).ready(function() { 
 
    $(".animar").click(function() { 
 
    $('#img4').addClass('uno'); 
 
    }); 
 
});
#img4:hover { 
 
    animation-name: uno; 
 
    animation-duration: 7s; 
 
} 
 

 
@keyframes uno { 
 
    20% { 
 
    left: 80px; 
 
    } 
 
    50% { 
 
    left: 190px; 
 
    } 
 
    70% { 
 
    left: 220px 
 
    } 
 
    100% { 
 
    left: 350px; 
 
    } 
 
}
<div id="movimiento"> 
 
    <img src="imagenes/kangura.png" class="img-responsive" id="img4"> 
 

 
    <img src="imagenes/corazon.png" class="img-responsive" id="img5"> 
 
    <button class="animar">Entregar Corazón</button> 
 
</div>

什麼樣的變化,我需要作出所以它是否行得通呢?

+1

@喬恩 - uleis [答案是適合(https://stackoverflow.com/a /3931192分之46268398)。我只想強調一下,當你調用'jQuery.noConflict();'時,不能再使用'$',而是使用'jQuery' - 至少在問題中是這樣做的。只是爲了防止下一個錯誤... – Axel

回答

3

您正在將類uno添加到jQuery中,但您沒有相應的針對.uno的CSS規則。

我添加了一個最起碼的風格來顯示此工作:

$(document).ready(function() { 
 
    $(".animar").click(function() { 
 
    $('#img4').addClass('uno'); 
 
    }); 
 
});
#img4 { 
 
    position: absolute; 
 
    top: 30px; 
 
} 
 

 
.uno { 
 
    animation-name: uno; 
 
    animation-duration: 7s; 
 
} 
 

 
@keyframes uno { 
 
    20% { 
 
    left: 80px; 
 
    } 
 
    50% { 
 
    left: 190px; 
 
    } 
 
    70% { 
 
    left: 220px 
 
    } 
 
    100% { 
 
    left: 350px; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="movimiento"> 
 
    <img src="http://placehold.it/200x200" class="img-responsive" id="img4"> 
 

 
    <button class="animar">Entregar Corazón</button> 
 
</div>

+0

我不知道發生了什麼,但你點擊按鈕和代碼不會運行,這是整個代碼。 –