jQuery中的动画

jQuery中的动画方法

  1. hide() 和 show() 隐藏或显示
    同时修改多个样式即高度、宽度、不透明度
  2. fadeIn() 和 fadeOut() 只改变不透明度
  3. slideUp() 和 slideDown() 只改变高度
  4. toggle() 用来代替hide()和show()方法,所以会同时修改多个样式即高度、宽度。不透明度
  5. slideToggle() 用来代替slideUp() 和 slideDown() 所以只能改变高度
  6. animate() 自定义动画方法,直接使用animate() 方法 还能自定义其它的样式属性
    例如:“left”,“marginLeft”,“scrollTop”

animate() 方法

语法:$(selector).animate({params},speed,callback);

  • 必需的 params 参数定义形成动画的 CSS 属性。
  • 可选的 speed 参数规定效果的时长。它可以取以下值:“slow”、“fast” 或毫秒。
  • 可选的 callback 参数是动画完成后所执行的函数名称。
$("div").click(function(){
	$(this).animate({
		left:"500px",
		top:"200px",
	},1000,function(){
		$(this).css("width","500px")
	})
})

多重动画

$("div").click(function(){
		$(this).animate({left:"500px",top:"0"},1000)
				.animate({left:"500px",top:"200px"},1000)
				.animate({left:"0",top:"200px"},1000)
				.animate({left:"0",top:"0"},1000)
})

动画队列

(1)一组元素上的动画效果当在一个 animate()方法中应用多个属性时,动画是同时发生的。

当以链式的写法应用动画方法时,动画是按照顺序执行的

(2)多组元素上的动画效果

默认情况下,动画都是同时发生的。当以回调的形式应用动画方式时,动画是按照回调)另外,在动画方法中,要注意其他非动画方法会插!按照顺序执行,需要把这些方法写在动画方法的回调函数中

$("#panel").click(function(){
	$(this).animate({left:"400px",height:"200px",opacity:"1"},3000)
			.animate({top:"200px",width:"200px"},3000,function(){
			$(this).css("border","5px solid blue")
			})		
})

stop()

stop()函数用于停止当前匹配元素上正在运行的动画。

  • 默认情况下,stop()函数只会停止当前正在运行的动画。
  • 停止动画并不是恢复到该动画执行前的状况,而是直接停止,当前动画执行到什么状态,就停留在什么状态。

语法:
$(selector).stop(clearQueue,goToEnd) clearQueue,goToEnd均为可选布尔值参数

1、clearQueue可选。代表是否要清空未执行完的动画队列。

	$(selector).stop(true)则会停止所有后续动画或事件。
	$(selector).stop(false),则只停止当前执行的动画,后续动画不受影响。
	$(selector).stop( )则会停止当前的动画,以当前状态开始接下来的动画。

2、goToEnd
$(selector).stop(true,true)。直接将正在执行的动画跳转到当前动画的末尾。

  1. 默认情况下,不写参数,则会被认为两个参数都是false。
$("button:eq(0)").click(function(){
	$("#panel").animate({
		height:"150px"
	},1000)
	.animate({
	width:"300px"
	},1000)
	.hide(2000)
	.animate({
		height:"show",
		width:"show",
		opacity:"show"
	},1000)
	.animate({
		height:"500px",
		width:"500px",
	},1000)
})

$("button:eq(1)").click(function(){
	$("#panel").stop();		//停止当前动画,继续下一个动画
});
$("button:eq(2)").click(function(){
	$("#panel").stop(true);	//清除元素的所有动画[立即停止]
});
$("button:eq(3)").click(function(){
	$("#panel").stop(false,true);	//让当前动画直接到达末状态,继续下一个动画
})
$("button:eq(4)").click(function(){
	$("#panel").stop(true,true);	//清除元素的所有动画,让当前动画直接到达末状态
})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值