【发布时间】:2013-03-30 20:21:26
【问题描述】:
我有以下代码。
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');
}
如您所见,if 两边的代码是相同的,但如果为 true,则无论我增加多少持续时间,jquery 都不会为过渡设置动画。 你们中的任何人都可以看到我错过的错误吗?
编辑:这里也是 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 ... 但它只适用于 chrome,这是一个跨浏览器的解决方案:stackoverflow.com/questions/13442897/…
标签: jquery jquery-animate background-position