`
yunlonglove
  • 浏览: 238959 次
社区版块
存档分类
最新评论

jQuery的动画处理总结

 
阅读更多

最近一年多一直在做前端的东西,由于老板在追求一些年轻动感的效果,让页面元素不能仅仅是简单的隐藏显示,所以经常会使用一些动画效果,发现jQuery的动画真心好用啊,把常用的几个总结一下,希望不再每次使用的时候还去翻API

queue()/ dequeue()

这两个方法就像Ajax的XMLHttpRequest对象一样的隐蔽,不为常人所知。这两个方法在动画处理的时候很有用,我们经常会写一些这样的代码

$('#test').animate({
            "width": "300px",
            "height": "300px",
            "opacity":"1"
        });

这样test div的height、width、opacity是同时变化的,有时候我们不希望同步执行,而是形状的变化和透明度的变化分开,先变成300*300的div,然后透明度再逐渐变化,我们需要这么写

$('#test').animate({
            "width": "300px",
            "height": "300px",
        }, function () {
            $('#test').animate({ "opacity": "1" });
        });

同学们可以想象一下要是有十个动画流程,那代码是什么样的,queue()和dequeue()可以解决此类问题,为所有的流程方法见一个队列,让function依次调用,先看一下语法

queue( [queueName ], newQueue ) 操作欲执行队列方法

第一个参数是队列名称,不写的话默认是fx

第二个参数可以是一个函数数组,存放所有队列函数,也可以是一个回掉函数,用于向队列中添加新函数

dequeue( [queueName ] ) 为匹配元素执行队列中的下一个function

每次调用此方法执行队列中下一函数

复制代码
var q = [
            function () {
                $(this).animate({
                    "width": "200px",
                    "height":"200px"
                }, next)
            },
            function () {
                $(this).animate({
                    "width": "400px",
                    "height": "400px"
                }, next);
            }
        ];

        function next(){
            $('#test').dequeue('myQueue');
        }

        $('#test').queue('myQueue', q);
        next();
复制代码

上面代码就是可以让test div先变成200*200的,然后再变为400*400的,每个动画都执行回掉函数,调用队列中下一个方法,两个动画依次执行,如果在执行期想再添加某个函数可以这样

复制代码
var q = [
            function () {
                $(this).animate({
                    "width": "200px",
                    "height":"200px"
                }, next)
            },
            function () {
                $(this).animate({
                    "width": "400px",
                    "height": "400px"
                }, next);
            }
        ];

        function next(){
            $('#test').dequeue('myQueue');
        }

        $('#test').queue('myQueue', q);
        next();
        $('#test').queue('myQueue',function () {
            $(this).slideUp().dequeue('myQueue');
        });
复制代码

总而言之这两个方法就是为了方便动画按照预定次序执行

clearQueue() /stop()

这两个方法主要是为了取消动画

clearQueue( [queueName ] ) 将队列中函数清空

stop( [queue ] [, clearQueue ] [, jumpToEnd ] ) 用于停止正在进行的动画

queue:正在进行的动画队列名称

clearQueue:默认值为false,是否将队列本身也清空

jumpToEnd:默认值为false,是否立即执行完动画

如果想停止刚才动画可以这么写

$('#test').clearQueue('myQueue');

这样写不会不会终止动画,只是当前动画执行完后,不会再调用队列中下一个动画(队列被清空了嘛,没有下一个了),如果想立即停止动画,可以这么写

$('#test').stop();

至于停止动画是暂停还是立即执行完,就学要配置stop()的参数了

slideDown()/ slideUp()/ slideToggle()

slide效果在做动画的时候经常会使用,尤其是菜单,这三个函数很简单,就是元素收起/伸展/自动判断收起伸展,但是其参数不仅仅是duration,我们还能加一些其他的控制,看看API中的介绍,这Sanger函数参数类似,那slideUp举例

slideUp( [duration ] [, easing ] [, complete ] ) easing是渐变方式,这个我从来没有手工改动过,duration不写的话,默认会用大概一秒的时间完成动画

slideUp(options)

options中常用的配置有

duration:动画时间

queue:这个看了上面自然会懂

step:动画过程中每次属性改动时执行

complete:动画完成时执行

start:动画开始时执行

always:动画被终止或者意外发生没有执行完时发生

 

这三个函数在执行的时候会修改元素height,在sideUp()执行完后会把height复原,并把diaplay设为none

fadeIn()/ fadeOut()/ fadeToggle()/ fadeTo()

fadeIn()/ fadeOut()/ fadeToggle() 的用法和slide系列类似,不再一一说明,只不过这三个函数修改的时元素的透明度,fadeOut()函数在执行完后会将元素opacity复原,并把display属性设为none

fadeTo( duration, opacity [, easing ] [, complete ] ) fadeTo()方法就没有那么复杂了,但是fadeTO()的duration和opacity不是可省略的,必须写

show()/ hide()/ toggle()

这三个函数的用法和slide系列一样,但是在效果上有几点儿不同

1.如果参数duration不写,那么回立即执行没有动画

2.这个动画同时修改height、width、opacity属性

3.hide()执行完成后会将height、width、opacity属性还原,并把display设为none

animate()

有些复杂的动画靠上面几个函数不能够实现,这时候就是强大的animate派上用场的时候了,animate()有两种用法

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

大部分属性都不用解释,properties是个json,属性的值可以是字面量、function、”toggle”、简单表达式,如果是function会把返回值赋给属性,熟悉jQuery的同学肯定明白“toggle”是什么,就是让一个属性在初始值和最小值之间切换,能够使用toggle的属性有width、height、opacity等包含数字值属性,简单表达式是+=、-=等,比如可以这么些 “width”:”+=10px”。

复制代码
$( "#block" ).animate({
    width: "70%",
    opacity: 0.4,
    marginLeft: "0.6in",
    fontSize: "3em",
    borderWidth: "+=10px"
  }, 1500 );
复制代码

如果传入了回掉函数,该函数会在动画执行完后调用

.animate( properties, options )

这种用法更为灵活,properties和前一个用法一样,常用options有

duration:动画时间

queue:function队列

step:每次属性调整的回掉函数

complete:完成动画的回掉函数

start:动画开始的时候调用

always:动画被终止或者意外发生没有执行完时发生

要不说jQuery好用,上面这几个配置是不是很熟悉呢

复制代码
$( "#book" ).animate({
    width: "toggle",
    height: "toggle"
  }, {
    duration: 5000,
    specialEasing: {
      width: "linear",
      height: "easeOutBounce"
    },
    complete: function() {
      $( this ).after( "<div>Animation complete.</div>" );
    }
  });
复制代码

hover()

严格说这个并不是个动画函数,但是由于低版本IE的hover对很多元素都不起作用,用CSS无法完成很多动作,所以经常需要使用JavaScript进行haver事件的处理。

.hover( handlerIn(eventObject), handlerOut(eventObject) )

方法很简单,不多介绍了,这样就能把mousein 和mouseout写在一起了。

6
1
分享到:
评论

相关推荐

    jQuery动画下拉菜单Smart Menu

    《jQuery动画下拉菜单Smart Menu深度解析》 在网页设计中,下拉菜单是一种常见的交互元素,它能够有效地节省空间并提升用户体验。jQuery作为一个强大的JavaScript库,提供了丰富的功能来实现这种效果,其中“jQuery...

    jquery总结学习资料JQuery总结,jquery总结学习资料JQuery总结,jquery总结学习资料JQuery总结

    jQuery 是一个广泛使用的JavaScript库,由John Resig于2006年创建,它极大地简化了JavaScript编程,尤其是处理DOM操作、事件处理、动画效果和Ajax交互。jQuery 的设计目标是“write less, do more”,它通过提供简洁...

    jQuery下的动画处理总结

    这两个方法在动画处理的时候很有用,我们经常会写一些这样的代码 代码如下:$(‘#test’).animate({ “width”: “300px”, “height”: “300px”, “opacity”:”1″ }); 这样test div的height、width、...

    jquery 动画处理1-queue使用

    在本篇讨论中,我们将深入探讨jQuery中的动画处理机制,特别是`queue`的使用。`queue`是jQuery中用于管理一系列操作的重要工具,它允许我们顺序执行任务,尤其是在动画效果的串联中显得尤为重要。 首先,我们需要...

    jquery 学习笔记总结

    jQuery 是一个广泛使用的 JavaScript 库,它简化了网页文档对象模型(DOM)操作、事件处理、动画制作以及Ajax交互。本篇笔记将深入探讨 jQuery 的核心概念,包括选择器、常用方法以及在实际项目中的应用。 ### 1. ...

    JQUERY动画导航

    下面我们将详细探讨jQuery动画导航的实现原理、常见效果以及如何创建。 一、jQuery简介 jQuery是由John Resig在2006年创建的,它的核心理念是"写得更少,做得更多"(Write Less, Do More)。jQuery提供了一套简洁的...

    jquery动画背景图片

    总结来说,“jQuery 动画背景图片”是通过jQuery库实现的一种动态效果,它可以提升网页的视觉吸引力。通过合理运用jQuery提供的动画方法和技巧,我们可以创造出丰富多彩的背景动画,为用户提供更佳的浏览体验。

    jQuery旋转动画按钮

    在网页设计中,jQuery是一种广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作等任务。在本教程中,我们将探讨“jQuery旋转动画按钮”的实现,这可以为网页添加交互性和视觉吸引力。 ...

    jquery总结学习资料JQuery总结

    **jQuery 总结** 在实际开发中,jQuery 可以极大地提高工作效率,减少代码量,使得动态交互和界面美化变得更加简单。然而,随着 ES6 和现代前端框架的崛起,如 React 和 Vue,jQuery 在某些场景下可能不再是首选。...

    jquery动画制作示例图片滚动和飞行乌鸦,车窗效果,非常强大

    总结来说,这个压缩包提供的内容涉及到jQuery动画制作的核心技术,包括图片滚动、元素动画和交互效果的实现,以及利用插件提升开发效率。对于想要提升网页动态效果的前端开发者来说,这些都是非常实用的知识点。

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

    总结来说,"非常酷的jquery动画立体滚动效果.rar"这个资源涵盖了jQuery动画技术和CSS3立体效果的结合应用,通过JavaScript和CSS的协同工作,为网页增添互动性和视觉吸引力。对于希望提升网站用户体验的开发者而言,...

    jQuery文档处理.

    总结,jQuery在文档处理方面提供了全面而强大的工具,从简单的DOM操作到复杂的动画和Ajax交互,都使得JavaScript编程变得更加简单和高效。掌握jQuery的这些知识点,能够显著提升Web开发的效率和质量。

    jQuery图片排列动画效果.zip

    总结来说,"jQuery图片排列动画效果"项目通过jQuery库,结合HTML、CSS和JavaScript技术,为图片相册赋予了动态的展示方式,提升了用户体验。对于学习网页开发和JavaScript特效的初学者,这是一个很好的实践案例,...

    jquery的简易切换动画

    总结,"jQuery的简易切换动画"涵盖的知识点包括jQuery的基本动画方法、切换动画的实现、链式调用、事件绑定以及时间控制。通过这些技术,开发者可以创建出丰富的用户体验,使得网页更加生动活泼。在实际项目中,理解...

    jQuery图片排列动画效果

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

    一款锋利的jQuery动画插件wowslider

    总结来说,WowSlider是一款优秀的jQuery动画插件,为网页图片展示提供了多样化且专业的解决方案。其易用性和灵活性使其成为许多开发者的首选工具,结合详细的使用文档,即使是初学者也能快速上手,轻松打造引人注目...

    Jquery全集 Jquery总结

    jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了 JavaScript 的 DOM 操作、事件处理、动画制作以及 AJAX 交互。本资料旨在全面覆盖 jQuery 的核心概念和实用技巧,通过实例教学,帮助开发者快速上手并熟练...

    jQuery滑块动画菜单 点击带发光动画

    在本文中,我们将深入...jQuery的核心在于其简洁的API,它简化了DOM操作、事件处理、动画和Ajax交互等任务。要使用jQuery,你需要在HTML文档中引入jQuery库,通常通过CDN链接或者将库文件下载到本地项目中。 ```html ...

    jQuery动画-让页面动起来.doc

    本文档将深入探讨jQuery动画的相关知识,从基础到进阶,帮助你掌握这一强大的功能。 一、jQuery 动画基础 jQuery 提供了一系列方便的动画方法,如 `fadeIn()`, `fadeOut()`, `slideToggle()`, `animate()` 等,...

Global site tag (gtag.js) - Google Analytics