ユーザーがajaxで値を変更できるドロップダウンフィールドがあります。変更イベントが発生し、データがデータベースに保存されると、ドロップダウンフィールドを含む行が緑色に輝くように視覚的な「成功フィードバック」が表示されます。 これまでのところうまくいきますが、グローのアニメーション(css)は、行がフォーカスを失った場合にのみ発生します。マウスで行の外に移動した場合(クリックする必要はありません)。私はどんなアドバイスも感謝します。多分私はどのように私はこのグローをやっているの全体のコンセプトは間違っている(それを "成功"アヤックスコールで入れて)です。CSSのアニメーションは、要素のフォーカスが失われたときにのみ発生します。
のjavascript:
$("[name='dropdown_status']").on('change', function() {
var tr = $(this).closest('tr');
var bestell_id = $(this).attr('id');
$.ajax({
type: 'POST',
url: '/files/ajax/wm_change_status_dt.php',
data: {
id_bestell: bestell_id,
id_status: $(this).val()
},
success: function(data) {
tr.addClass('dropdown_anim');
tr.one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) {
tr.removeClass('dropdown_anim');
});
},
error: function(jqXHR, status, err) {
alert(status + ': ' + err);
}
});
}
はCSS:
.dropdown_anim {
background: transparent;
animation: color-me-in 1s;
}
@keyframes color-me-in {
0% {
background: transparent;
}
/* Adding a step in the middle */
50% {
background: #D3FCC7;
}
100% {
background: transparent;
}
}
jsFiddleで問題を複製できますか?それはすべての主要なブラウザで同じ問題か、それとも特定の問題だけですか? UIの再描画を強制する必要があるかもしれません。それをテストするには、 'tr.addClass( 'dropdown_anim')。hide()。show(0);' –