发生这种情况是因为您始终将 left 设置为 400,如果您将第二个设置 left 为 800,它将起作用
http://jsfiddle.net/oesw6onk/2/
$(document).ready(function () {
$("button").click(function () {
$("div").animate({
left: '400',
opacity: '1',
}, function () {
$("div").animate({
left: '800',
opacity: '0',
})
});
});
});
我把第二个动画也放在了第一个的完整功能中。
或
你可以使用增量
http://jsfiddle.net/oesw6onk/3/
$(document).ready(function () {
$("button").click(function () {
$("div").animate({
left: '+=400',
opacity: '1',
}, function () {
$("div").animate({
left: '+=400',
opacity: '0',
})
});
});
});
您可能希望在此版本的最终动画完成后再次将左侧设置为 0,因为您可以看到,每次单击按钮时,该框都会向右保持 400 像素。
左侧重置示例http://jsfiddle.net/oesw6onk/4/
CSS 选项
http://jsfiddle.net/oesw6onk/6/
@-webkit-keyframes NAME-YOUR-ANIMATION {
0% {
opacity: 0;
left: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
left: 800px;
}
}
@-moz-keyframes NAME-YOUR-ANIMATION {
0% {
opacity: 0;
left: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
left: 800px;
}
}
@-o-keyframes NAME-YOUR-ANIMATION {
0% {
opacity: 0;
left: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
left: 800px;
}
}
@keyframes NAME-YOUR-ANIMATION {
0% {
opacity: 0;
left: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
left: 800px;
}
}
div {
-webkit-animation: NAME-YOUR-ANIMATION 2s infinite;
-moz-animation: NAME-YOUR-ANIMATION 2s infinite;
-o-animation: NAME-YOUR-ANIMATION 2s infinite;
animation: NAME-YOUR-ANIMATION 2s infinite;
}