`
piperzero
  • 浏览: 3555299 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

jquery中的动画与效果

 
阅读更多

一、show()和hide()方法:
这两个方法是JQuery中最简单的两个动画效果。hide()是把元素的display样式设为“none”,show()是把元素的display样式设为原来的样式(除了none之外的样式)。JQuery在调用hide()时会记住元素原先的display属性,当调用show()的时候会根据hide()方法记住的display属性来显示元素。

语法:
$("element").hide([speed][,callback])
$("element").show([speed][,callback])
speed:动画速度的参数,一般以毫秒为单位,也查以使用slow,fast等,如果不加此参数的话,那不会出现动画过渡效果。
callback:动画执行结束后回调函数
以上两个动画会同时表现出三种效果:高度变化、宽度变化、透明度的变化。

示例:
$("element").show(1000);元素在一秒内动态显示出来。
$("element").hide(1000);元素在一秒内动态隐藏起来。

下面两个函数互为回调函数,一旦运行起来,就会把相应的元素以动画形式反复显示、隐藏。
functionhideDiv() {
$("#dd").hide(2000, function () {showDiv(); });
}
functionshowDiv() {
$("#dd").show(2000, function () {hideDiv(); });
}


二、fadeIn()方法和fadeOut()方法
这两个方法只改变元素的透明度,不改变大小。

语法:
$("element").fadeIn([speed][,callback])
$("element").fadeOut([speed][,callback])

speed:动画速度的参数,一般以毫秒为单位,也查以使用slow,fast等,如果不加此参数的话,那也会出现默认动画过渡效果。
callback:动画执行结束后回调函数

示例:
$("element").fadeOut(1000);在一秒内,元素越来越透明,直到完全消失。
$("element").fadeIn(1000);与fadeOut()相反。

下面两个函数互为回调函数,一旦运行起来,就会把相应的元素以反复出现“褪色”与“上色”的动画效果。
functionhideDiv() {
$("#dd").fadeOut(2000, function () {showDiv(); });
}
functionshowDiv() {
$("#dd").fadeIn(2000, function () {hideDiv(); });
}

三、slideUp()方法和slideDown()方法
这两个方法只改变元素的高度,不改变宽度和透明度

语法:
$("element").slideUp([speed][,callback])
$("element").slideDown([speed][,callback])

speed:动画速度的参数,一般以毫秒为单位,也查以使用slow,fast等,如果不加此参数的话,那也会出现默认动画过渡效果。
callback:动画执行结束后回调函数

示例:
$("element").slideUp(1000);在一秒内,元素高度逐渐变为0。
$("element").slideDown(1000);与fadeOut()相反。

下面两个函数互为回调函数,一旦运行起来,就会把相应的元素以反复出现“褪色”与“上色”的动画效果。
function hideDiv() {
$("#dd").slideUp(2000, function () { showDiv(); });
}
function showDiv() {
$("#dd").slideDown(2000, function () { hideDiv(); });
}

四、自定义动画方法animate()
上面的三组方法能够实现简单的动画,但如果需要一些高级动画时就需要使用animate()方法来实现。

语法:
$("element").animate(params,speed,callback);
params:包含样式{属性:值}的一组参数。如:{backgroundColor:"red",color:"yellow",height:"160px"}
speed:动画显示的速度,以毫秒为单位
callback:回调函数

1.自定义简单动画
简单的一次性动画
$("dd").animate({left: "500px"}, 3000);
该动画的效果是在3秒内使dd元素右移500像素。需要事选把dd元素的position设置为absolute或relative。

2.累加累减动画
在现有的状态下进行属性的累加变化,实现动态动画。
$("dd").animate({left: "+=500px"}, 3000);
它的作用是在当前位置向后再移500像素。当然也可以设为{left:"-=500px"}使动画向右累加移动。

3.多重动画
a.同时执行多个动画,即同时改变元素的多个样式。
$("#dd").animate({ left: "800",width:"200",height:"400" }, 3000);
它的作用是dd元素在向右移动的同时把宽度加大为200像素,并把高度加大为400像素。

b.按顺序执行多个动画,按一定的次序依次改变元素的多个样式。
$("#dd").animate({ left: "800" }, 3000).animate({ top: "300" }, 3000).animate({ width: "300",left:"-=150" }, 3000);
它的作用是dd元素先右移800像素,再下移300像素,最后再同时拉宽左移

4.使用animate()的回调函数
如果在上面“多重动画”的基础上,让动画执行完成后,把元素的颜色变成红色的话,有的人会这样写代码:
$("#dd").animate({ left: "800" }, 3000).animate({ top: "300" }, 3000).animate({ width: "300",left:"-=150" }, 3000).css("background-color","red");
这种写法不正确因为css()不会被加到动画过程中,而是立即被执行。我们可以把改变颜色的代码放在回调函数中实现动画的排队效果。
$("#dd").animate({ left: "800" }, 3000).animate({ top: "300" }, 3000).animate({ width: "300",left:"-=150" }, 3000,function(){changeColor(););
functionchangeColor() {
$("#dd").css("background-color","red");
}
在最后一个动画效果执行完成后回执行回调函数changeColor();

5.停止动画
停止当前执行的动画。
语法:
$("element").stop([clearQueue][,gotoEnd]);
clearQueue:bool,代表是否要清空未执行的动画队列
gotoEnd:bool,代表将正在执行的动画直接跳到末状态

如果我们做了一个下拉菜单,当鼠标移上去的时候就菜单下拉,当鼠标离开的时候菜单上卷,下拉和上卷的动画时间都是3 秒种。
$("#dd").hover(
function () {
$("#dd").animate({ height: "500" }, 3000);
},
function () {
$("#dd").animate({ height: "100" }, 3000);
}
);
如果我快速不断地将鼠标移入移出菜单(即,当菜单下拉动画未完成时,鼠标又移出了菜单)就会产生“动画积累",当鼠标停止移动后,积累的动画还会持续执行,直到动画序列执行完毕。这样导致动画效果与鼠标动作不一致。
要解决此问题只需要在移入移出动画之前加入stop(),结束当前动画进入下个动画即可。
代码如下:
$("#dd").hover(
function () {
$("#dd").stop().animate({ height: "500" }, 3000);
},
function () {
$("#dd").stop().animate({ height: "100" }, 3000);
}
);

如果需到组合动画,在移入移出动画之前加入stop()来停止当前动画,如下
$("#dd").hover(
function () {
$("#dd").stop().animate({ height: "500" }, 3000).animate({ width: "500px" }, 3000);
},
function () {
$("#dd").stop().animate({ height: "100" }, 3000).animate({ width: "100px" },3000);
}
);
效果并不好,因为stop()只是停止了当前第一步的动画(即{height:"500"}),然后又进入了第二步的动画(即[width:"500"})。
此时stop()的第一个参数就派上了用场,它会把下面没有执行的动画序列都清空掉。
$("#dd").hover(
function () {
$("#dd").stop(true).animate({ height: "500" }, 3000).animate({ width: "500px" }, 3000);
},
function () {
$("#dd").stop(true).animate({ height: "100" }, 3000).animate({ width: "100px" },3000);
}
);
当然也可以使用第二个参数,让动画达到最后状态。如:stop(false,true)

判断元素是否正处于动画中
if(!$("element").is(":animated")){
//...
}

<wbr></wbr>
分享到:
评论

相关推荐

    jquery的动画效果

    本项目着重探讨jQuery中的动画效果,这些效果能够为网页增添动态和交互性。 在jQuery中,动画主要通过`.animate()`函数来实现。这个函数允许开发者自定义CSS属性的变化,从而创建出平滑的过渡效果。例如,可以改变...

    jQuery表单动画切换效果.zip_jQuery表单动画切换效果

    开发者可以在这个文件中查看和测试动画效果,也可以根据自己的需求进行定制。 为了实现表单动画切换,jQuery通常与CSS一起工作。CSS用于定义元素的基本样式和初始状态,而jQuery则处理动态改变这些样式以实现动画。...

    jQuery表单动画切换效果.zip

    在本项目中,jQuery用于处理表单切换时的动画效果,使得表单之间的转换更加平滑,提升用户体验。 在HTML文件中,例如index.html,我们可以看到不同表单的结构,如登录、注册和找回密码。每个表单都有相应的ID或类名...

    .jQuery动画效果

    在“jQuery动画效果”这个主题中,我们将深入探讨jQuery如何帮助开发者创建吸引人的、动态的用户界面。 1. **基本动画** jQuery 提供了一系列的基本动画方法,如 `fadeIn()`, `fadeOut()`, `slideToggle()` 和 `...

    简单易用的jQuery页面切换动画效果

    其次,展现的动画效果依赖于CSS3动画,so,新老结合实现的动画效果 使用方法: 1、将head中的CSS引入到你的网页中 2、将body中的代码部分拷贝到你需要的地方即可 (注意保持图片路径正确即可)

    jQuery图片排列动画效果

    描述中的“超酷jQuery图标排列动画效果”可能涉及到几种常见的jQuery动画技术,比如淡入淡出(`fadeIn()`, `fadeOut()`)、滑动(`slideToggle()`)或者自定义动画。这些动画可能应用于图片的加载、切换或者鼠标悬停事件...

    jQuery文字切换动画效果

    在这个名为"jQuery文字切换动画效果"的项目中,我们重点关注的是如何利用jQuery来创建吸引人的文本动态展示,特别是对于网站口号或广告语的呈现。 首先,`index.html`是网页的主文件,它包含了页面的基本结构和元素...

    jQuery中常用动画效果函数(日常整理)

    标题所指的知识点是:jQuery中常用动画效果函数 描述所指的知识点是:收集整理jQuery中常用动画效果函数的相关资料,其内容具有参考借鉴价值。 标签所指的知识点是:jquery 动画函数 具体知识点详解: 1. jQuery...

    jQuery图片排列动画效果.zip

    在这个项目中,jQuery将被用于创建图片的动画效果,比如淡入淡出、滑动切换等。 项目的结构包括以下几个部分: 1. **css**:这个文件夹包含项目所需的样式表文件。CSS(层叠样式表)用于定义页面的布局和样式,如...

    jQuery实现切换页面过渡动画效果

    是一款效果非常酷的jQuery和CSS3...该页面切换特效使用AJAX来动态加载链接内容,在页面加载的时候,使用CSS3来制作非常酷的页面过渡动画效果。插件中使用pushState方法来管理浏览器的浏览历史,需要的朋友可以参考下

    jQuery滑动动画进度条效果

    效果描述: 非常不错的一个基于jQuery的进度条展示动画效果 使用方法: 1、引入css样式 2、将index.html中的代码部分拷贝过去即可

    jQuery带动画效果图片轮播切换焦点图代码

    【jQuery带动画效果图片轮播切换焦点图代码】是一种常见的网页设计技术,它利用JavaScript库jQuery来实现动态的、有视觉吸引力的图片展示效果。在网页设计中,焦点图组件通常用于展示产品、新闻或者任何需要突出显示...

    非常酷的jquery动画立体滚动效果

    - 提示信息同步:结合动画进度,显示或隐藏问题提示,确保与动画效果同步。 4. **兼容性和性能优化** - 使用Modernizr检测浏览器对CSS3 3D变换的支持,提供回退方案。 - 利用硬件加速:将CSS3动画属性设置为`...

    jquery和CSS3带弹性动画效果的工具栏菜单

    本项目聚焦于利用jQuery和CSS3创建具有弹性动画效果的工具栏菜单,旨在提升用户体验并增加网页的交互性。 jQuery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及AJAX交互。在本项目中,...

    jQuery添加背景动画效果插件.zip

    在本案例中,"jQuery添加背景动画效果插件.zip" 提供了一种方法,通过使用jQuery来实现网页背景的动态效果。这些效果可能是渐变、滑动、旋转等多种视觉变换,以增强用户体验和网站的视觉吸引力。 首先,我们要理解...

    jQuery旋转动画按钮

    在网页设计中,jQuery是一种广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作等...对于更高级的应用,你还可以结合其他jQuery插件或动画库,如Animate.css,以实现更多样化的动画效果。

    jQuery动画效果鼠标响应菜单.zip

    《jQuery动画效果与鼠标响应菜单》 在网页设计中,用户界面的交互性和吸引力是至关重要的,其中菜单导航系统作为用户与网站互动的桥梁,其设计尤为重要。本篇将深入探讨"jQuery动画效果多功能菜单"这一主题,它利用...

    jquery实例超炫animate动画效果

    在标题提及的“demo”中,原版的动画效果展示了一种可能的应用场景,它可能包括淡入淡出、滑动、旋转等多种视觉特效,这些都是通过精准控制时间和动画曲线实现的。 在实际应用中,`animate()`方法的基本语法如下: ...

    jQuery分页动画效果.zip

    jQuery分页动画效果是一种在网页中实现数据分页并伴随过渡动画的技术,它极大地提升了用户体验,使得用户在浏览大量信息时能轻松地翻页。在这个名为"jQuery分页动画效果.zip"的压缩包中,包含了一个实现这种效果的...

    jQuery 模拟的鼠标动画菜单效果

    "jQuery 模拟的鼠标动画菜单效果"是一个利用 jQuery 技术实现的菜单设计,它通过鼠标悬停事件触发特定的动画效果,为用户带来独特的视觉体验。 这个菜单效果的特点在于当鼠标光标悬停在菜单项上时,色块或图标会...

Global site tag (gtag.js) - Google Analytics