I am using the .animate function in Jquery. I have a div that slides over using marginLeft, but I also need it to fade in, but I need it to be slower than the marginLeft effect. With .animate, I can only seem to apply one speed parameter.
<script type="text/javascript">
$(document).ready(function(){
$(".topFrameAnim").css("opacity", "0.0");
$(".topFrameAnim").animate({
marginLeft: "0",
}, 500 );
$(".topFrameAnim").animate({
opacity: "1",
}, 1000 ); // Need this effect to be applied at the same time, at a different speed.
});
</script>
You need to use the two argument form of animate, with queue:false
in the options array (on the first animation):
<script type="text/javascript">
$(document).ready(function(){
$(".topFrameAnim").css("opacity", "0.0")
.animate({
marginLeft: "0",
}, { queue: false, duration: 500 })
.animate({
opacity: "1",
}, 1000 ); // Need this effect to be applied at the same time, at a different speed.
});
</script>
Note: It's .animate here to reduce the number of selectors used. Since you're selecting the same objects, it's better to reuse the existing object.
来源:https://stackoverflow.com/questions/1902027/jquery-animate-different-speeds