重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
jQuery 动画 - animate() 方法
创新互联公司专注于福清网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供福清营销型网站建设,福清网站制作、福清网页设计、福清网站官网定制、成都小程序开发服务,打造福清网络公司原创品牌,更为您提供福清网站排名全网营销落地服务。
jQuery animate() 方法用于创建自定义动画。
语法:
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
下面的例子演示 animate() 方法的简单应用;它把 div 元素移动到左边,直到 left 属性等于 250 像素为止:
实例
$("button").click(function(){
$("div").animate({left:'250px'});
});
提示:默认地,所有 HTML 元素都有一个静态位置,且无法移动。
如需对位置进行操作,要记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute!
具体html代码:
!DOCTYPE html
html
head
script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"
/script
script
$(document).ready(function(){
$("button").click(function(){
$("div").animate({left:'250px'});
});
});
/script
/head
body
button开始动画/button
p默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。/p
div style="background:#98bf21;height:100px;width:100px;position:absolute;"
/div
/body
/html
jQuery animate() - 操作多个属性
请注意,生成动画的过程中可同时使用多个属性:
实例
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
提示:可以用 animate() 方法来操作所有 CSS 属性吗?
是的,几乎可以!不过,需要记住一件重要的事情:当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。
同时,色彩动画并不包含在核心 jQuery 库中。
如果需要生成颜色动画,您需要从 jQuery.com 下载 Color Animations 插件。
具体html代码:
!DOCTYPE html
html
head
script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"
/script
script
$(document).ready(function(){
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
});
/script
/head
body
button开始动画/button
p默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。/p
div style="background:#98bf21;height:100px;width:100px;position:absolute;"
/div
/body
/html
如需其他更多了解,参考:
一、动画 animate()
1、animate()方法的简单使用
有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就是强大的animate方法了。
操作一个元素执行3秒的淡入动画,对比下一下2组动画设置的区别。
$(elem).fadeOut(3000)
$(elem).animate({
opacity:0
},3000)
显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画。
语法:
1 .animate( properties [, duration ] [, easing ] [, complete ] )
2 .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: ,
width: 'px'
opacity: 'show',
fontSize: "em",
}, );
除了定义数值,每个属性能使用'show', 'hide', 和 'toggle'。这些快捷方式允许定制隐藏和显示动画用来控制元素的显示或隐藏
.animate({
width: "toggle"
});
如果提供一个以+= 或 -=开始的值,那么目标值就是以这个属性的当前值加上或者减去给定的数字来计算的
.animate({
left: '+50px'
}, "slow");
duration:时间
动画执行的时间,持续时间是以毫秒为单位的;值越大表示动画执行的越慢,不是越快。还可以提供'fast' 和 'slow'字符串,分别表示持续时间为200 和 600毫秒。
easing动画运动的算法:
jQuery库中是默认的时调用 swing。在一个恒定的速度进行动画,如果需要其他的动画算法,请查找相关的插件
complete回调
动画完成时执行的函数,这个可以保证当前动画确定完成后发会触发
2、animate() 方法来依次执行多个动画
animate在执行动画中,如果需要观察动画的一些执行情况,或者在动画进行中的某一时刻进行一些其他处理,我们可以通过animate的提供第二种设置语法,传递一个对象参数,可以拿到动画执行状态一些通知。
.animate( properties, options )
options参数
duration - 设置动画执行的时间
easing - 规定要使用的 easing 函数,过渡使用哪种缓动函数
step:规定每个动画的每一步完成之后要执行的函数
progress:每一次动画调用的时候会执行这个回调,就是一个进度的概念
complete:动画完成回调
如果多个元素执行动画,回调将在每个匹配的元素上执行一次,不是作为整个动画执行一次
列出常用的方式
$('#elem').animate({
width: 'toggle',
height: 'toggle'
}, {
duration: ,
specialEasing: {
width: 'linear',
height: 'easeOutBounce'
},
complete: function() {
$(this).after('divAnimation complete./div');
}
});
调用animate()方法可以创建自定义动画效果,它的调用格式为:
$(selector).animate({params},speed,[callback])
其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。
例如,调用animate()方法以由小到大的动画效果显示图片,如下图所示:
body
h制作简单的动画效果/h
img src="images/.png" alt=""/
div id="tip"/div
script type="text/javascript"
$(function() {
$('img').animate({
width: 'px';
height:'px'
}, , function() {
$("#tip").html('执行完成!');
});
})
/script
/body
css中的不是所有属性都可以用jQuery动画(animate函数)来动态改变,下面总结了JQ可以操作元素的一些属性:
* backgroundPosition
* borderWidth
* borderBottomWidth
* borderLeftWidth
* borderRightWidth
* borderTopWidth
* borderSpacing
* margin
* marginBottom
* marginLeft
* marginRight
* marginTop
* outlineWidth
* padding
* paddingBottom
* paddingLeft
* paddingRight
* paddingTop
* height
* width
* maxHeight
* maxWidth
* minHeight
* maxWidth
* font
* fontSize(在animate函数的css参数指定并不同于标准css属性,例如这个css标准是:font-size。同理上面很多也是这样的情况)
* bottom
* left
* right
* top
* letterSpacing
* wordSpacing
* lineHeight
* textIndent
* opacity
img src="图片地址" class=“xx”/img src="图片地址" class=“xx”/img src="图片地址" class=“xx”/
script
$(".xx").fadeOut(500);
/script
你把需要执行消失的图片加个class标签 然后jQuery通过这个标签来执行淡出效果
也可以将三张图片放在一个定义了id的 层里 然后通过id来寻找里面的3张图片执行 这种dom速度要快很多。
div id="box"img src="图片地址" /img src="图片地址" /img src="图片地址" //div
script
var mm=$("#box").find("img");
mm.fadeOut(500);
/script