章节
问答
课签
笔记
评论
占位
占位

jQuery中动画animate(上)

有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就需要强大的animate方法了

操作一个元素执行3秒的淡入动画,对比一下2组动画设置的区别

$(elem).fadeOut(3000)  
$(elem).animate({   
    opacity:0
},3000)

显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画

语法:

.animate( properties ,[ duration ], [ easing ], [ complete ] )
.animate( properties, options )

.animate()方法允许我们在任意的数值的CSS属性上创建动画。2种语法使用,几乎差不多了,唯一必要的属性就是一组CSS属性键值对。这组属性和用于设置.css()方法的属性键值对类似,除了属性范围做了更多限制。第二个参数开始可以单独传递多个实参也可以合并成一个对象传递了

参数分解:

properties:一个或多个css属性的键值对所构成的Object对象。要特别注意所有用于动画的属性必须是数字的,除非另有说明;这些属性如果不是数字的将不能使用基本的jQuery功能。比如常见的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等这些都是能产生动画效果的。background-color很明显不可以,因为参数是red或者GBG这样的值,非常用插件,否则正常情况下是不能只用动画效果的。注意,CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

特别注意单位,属性值的单位像素(px),除非另有说明。单位em 和 %需要指定使用

.animate({
    left: 50, 
    width: '50px'   
    opacity: 'show',  
    fontSize: "10em",
}, 500);

除了定义数值,每个属性能使用'show', 'hide', 和 'toggle'。这些快捷方式允许定制隐藏和显示动画用来控制元素的显示或隐藏

.animate({
    width: "toggle"
});

如果提供一个以+= 或 -=开始的值,那么目标值就是以这个属性的当前值加上或者减去给定的数字来计算的

.animate({ 
    left: '+=50px'
}, "slow");

duration时间

动画执行的时间,持续时间是以毫秒为单位的;值越大表示动画执行的越慢,不是越快。还可以提供'fast' 和 'slow'字符串,分别表示持续时间为200 和 600毫秒。

easing动画运动的算法

jQuery库中默认调用 swing。如果需要其他的动画算法,请查找相关的插件

complete回调

动画完成时执行的函数,这个可以保证当前动画确定完成后发会触发

具体可以参考右边的代码效果:

任务

   

?不会了怎么办
||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / weixin_慕工程1563154
https://m.vk.com/album712782483_285971686https://m.vk.com/album712781332_283441849https://m.vk.com/album712772904_281939585https://m.vk.com/album712774205_283345814https://m.vk.com/album712534118_283396727https://m.vk.com/album712782889_283694745https://m...

最新回答 / weixin_慕工程1563154
https://m.vk.com/album712782483_285971686https://m.vk.com/album712781332_283441849https://m.vk.com/album712772904_281939585https://m.vk.com/album712774205_283345814https://m.vk.com/album712534118_283396727https://m.vk.com/album712782889_283694745https://m...

最新回答 / weixin_慕工程1563154
https://m.vk.com/album712534118_283388553https://m.vk.com/album712782889_283686511https://m.vk.com/album712781708_283388575https://m.vk.com/album712782082_283434379https://m.vk.com/album712782483_285963852https://m.vk.com/album712781332_283434391https://m...

最新回答 / 慕函数4904647
你得把jq库的http改成https

已采纳回答 / 慕婉清4631546
动画只能用于数值的效果 比如高宽 尔不能用于背景颜色的效果

最新回答 / h晴天_
用于动画的属性对应的参数只能是数字,如果是颜色类的要用插件,老师在讲的时候已经说过了,下面有参数分解

最新回答 / sfanxi
课件里说,除了定义数值之外,每个属性只能用能使用'show', 'hide', 和 'toggle',不能使用其他的了

已采纳回答 / qq_杀星_0
duration值,表示时间600ms

最新回答 / 莫龙吟啸
.val()选中的是表单元素的值,不传参数的情况下,获取的是集合中的第一个元素,option是集合吗?它要选也是选select

已采纳回答 / web前端小白进阶
我之前用360浏览器也出现过这种情况,后来换谷歌浏览器,再没出现过了

最新回答 / 山_3
你这没代码怎么看,,,

最新回答 / qq_鞋子服装_0
这个函数相当于一个总体,它可以含有两种情况

最新回答 / Mr_Jp黎
回答自己的问题,第一个问题,好像是一样的,只不过要加花括号。.hide({ duration:2000})  ==  .hide(2000)<...code...>animate这样写好像不行???

最新回答 / 洋葱_dot
animate内部相当于是个对象,没有分号,是用逗号隔开
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言