У меня есть следующий фрагмент кода.jQuery .animate issue
if ($(checkboxID)[0].checked == false) {
$(this).animate({
'background-position-x': '0%',
'background-position-y': '0%'
}, 200, 'linear');
$(checkboxID)[0].checked = true;
$(this).removeClass('off').addClass('on');
} else {
$(this).animate({
'background-position-x': '100%',
'background-position-y': '0%'
}, 200, 'linear');
$(checkboxID)[0].checked = false;
$(this).removeClass('on').addClass('off');
}
Как вы можете видеть код идентичен в обеих сторонах, если, но если это правда, что JQuery не не анимировать переход, независимо от того, сколько я могу увеличить продолжительность. Может ли кто-нибудь из вас увидеть ошибку здесь, я пропустил?
EDIT: Вот CSS тоже:
.checkbox-style {
display: block;
width: 87px;
height: 28px;
background: url('images/check-square.png') no-repeat;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
cursor: pointer;
}
.on {
background-position: 0% 0%;
}
.off {
background-position: 100% 0%;
}
Может быть обеспечить JSFiddle. –
Вам нужно использовать backgroundPositionX ... но он работает только в хром, вот кросс-браузерное решение: http://stackoverflow.com/questions/13442897/jquery-animate-backgroundposition-not-working?rq=1 – pathfinder