jQuery动画与特效详解


Posted in Javascript onFebruary 01, 2015

1.显示和隐藏hide()和show()

对于动画来说,显示和隐藏是最基本的效果之一,本节简单介绍jQuery的显示和隐藏。

<script type="text/javascript">

            $(function() {

                $("input:first").click(function() {

                    $("p").hide(); //隐藏

                });

                $("input:last").click(function() {

                    $("p").show(); //显示

                });

            });

        </script>

        <input type="button" value="Hide">

        <input type="button" value="Show">

        <p>点击按钮,看看效果</p>

        <div><em>本节主要降级和学习jQuery的自动显隐,渐入渐出、飞入飞出。自定义动画等。 1.显示和隐藏hide()和show() 对于动画来说,显示和隐藏是最基本的效果之一,本节简单介绍jQuery的显示和隐藏。</em>

        </div>

以上是对hide()和show()函数的测试。

2.使用show()、hide()和toggle()方法

上个例子对show()和hide()方法做了简单介绍,其实这两个方法可以接受参数控制显隐藏过程。
语法如下

show(duration,[callback]);
hide(duration,[callback]);
其中,duration表示动画执行时间的长短,可以表示速度的字符串,包括slow,normal,fast.也可以是表示时间的整数(毫秒)。callback是可选的回调函数。在动画完成之后执行。

<script type="text/javascript">

            $(function() {

                $("input:first").click(function() {

                    $("p").hide(300); //隐藏

                });

                $("input:last").click(function() {

                    $("p").show(500); //显示

                });

            });

        </script>

例子和第一个例子相同,只是对hide()和show()增加了时间参数。其实toogle()也可以加入事件参数。

2.使用fadeIn()和fadeOut()方式

对于动画效果显隐,jQuery还提供了fadeIn()个fadeOut这两个实用的方法,他们的动画效果类似褪色,语法与slow()和hide()完全相同。

            fadeIn(duration, [callback]);
            fadeOut(duration, [callback]);
例子

<script type="text/javascript">

            $(function() {

                $("input:eq(0)").click(function() {

                    $("img").fadeOut(3000); //逐渐fadeOut

                });

                $("input:eq(1)").click(function() {

                    $("img").fadeIn(1000); //逐渐fadeIn

                });

            });
        </script>
        <img src="http://study.ahthw.com/gtimg/book/2014/11/201411120129479688.jpg">

        <input type="button" value="Hide">

        <input type="button" value="Show">

fadeTo()方法的使用。

fadeTo() 方法将被选元素的不透明度逐渐地改变为指定的值。

例子:

<script type="text/javascript">

            $(function() {

                $("input:eq(0)").click(function() {

                    $("img").fadeOut(1000);

                });

                $("input:eq(1)").click(function() {

                    $("img").fadeIn(1000);

                });

                $("input:eq(2)").click(function() {

                    $("img").fadeTo(1000, 0.5);

                });

                $("input:eq(3)").click(function() {

                    $("img").fadeTo(1000, 0);

                });

            });

        </script>

            <p><img src="03.jpg"></p>

<input type="button" value="FadeOut">

<input type="button" value="FadeIn">

<input type="button" value="FadeTo 0.5">

<input type="button" value="FadeTo 0">

fadeOut相关参数

speed 
可选。规定元素从当前透明度到指定透明度的速度。

可能的值:

毫秒 (比如 1500)
"slow"
"normal"
"fast"
opacity 必需。规定要淡入或淡出的透明度。必须是介于 0.00 与 1.00 之间的数字。
callback 
可选。fadeTo 函数执行完之后,要执行的函数。

如需学习更多有关 callback 的内容,请访问我们的 jQuery Callback 这一章。

除非设置了 speed 参数,否则不能设置该参数。

3.幻灯片slideUp和slideDown效果

<script type="text/javascript">

            $(function() {

                $("input:eq(0)").click(function() {

                    $("div").add("img").slideUp(1000);

                });

                $("input:eq(1)").click(function() {

                    $("div").add("img").slideDown(1000);

                });

                $("input:eq(2)").click(function() {

                    $("div").add("img").hide(1000);

                });

                $("input:eq(3)").click(function() {

                    $("div").add("img").show(1000);

                });

            });

        </script>  

    <input type="button" value="SlideUp">

    <input type="button" value="SlideDown">

    <input type="button" value="Hide">

    <input type="button" value="Show"><br>

    <div></div><img src="04.jpg">

前面提到了几种动画效果,jQuery还提供了slideUp()和slideDown()来模拟PPT中的类似幻灯片拉帘效果,它与slow()和hide()完全相同。

以上代码定义了一个div和一个img,用add方法组合在一起。

4.自定义动画

考虑到框架的通用性及代码文件的大小,jQuery不能涵盖所有的动画效果,但它提供了animate()方法,能够使开发者自定义动画。本节主要通过介绍animate()方法的两种形式及应用。

animate()方法给开发者很大的空间。它一共有两种形式。第一种形式比较常用。用法如下

animate(params,[duration],[easing],[callback])
其中params为希望进行变幻的css属性列表,以及希望变化到的最终值,duration为可选项,与show()/hide()的参数含义完全相同。easing为可选参数,通常供动画插件使用。 用来控制节奏的变化过程。jQuery中只提供了linear和swing两个值.callback为可选的回调函数。在动画完成后触发。

 需要注意。params中的变量遵循camel命名方式。例如paddingLeft不能写成padding-left.另外,params只能是css中用数值表示的属性。例如width.top.opacity等

像backgroundColor这样的属性不被animate支持。

<style>

            div {

                background-color: #FFFF00;

                height: 40px;

                width: 80px;

                border: 1px solid #000000;

                margin-top: 5px;

                padding: 5px;

                text-align: center;

            }

        </style>

        <script type="text/javascript">

            $(function() {

                $("button").click(function() {

                    $("#block").animate({

                        opacity: "0.5",

                        width: "80%",

                        height: "100px",

                        borderWidth: "5px",

                        fontSize: "30px",

                        marginTop: "40px",

                        marginLeft: "20px"

                    }, 2000);

                });

            });

        </script>

        <button id="go">Go>></button>

        <div id="block">动画!</div>

在params中,jQuery还可以用“+=”或者"-="来表示相对变化。如

<style>

            div {

                background-color: #FFFF00;

                height: 40px;

                width: 80px;

                border: 1px solid #000000;

                margin-top: 5px;

                padding: 5px;

                text-align: center;

                position: absolute;

            }

        </style>

        <script type="text/javascript">

            $(function() {

                $("button:first").click(function() {

                    $("#block").animate({

                        left: "-=80px" //相对左移

                    }, 300);

                });

                $("button:last").click(function() {

                    $("#block").animate({

                        left: "+=80px" //相对右移

                    }, 300);

                });

            });

        </script>

        <button >Go>></button>

        <button >Go>></button>

        <div id="block">动画!</div>

先将div进行绝对定位,然后使用animate()中的-=和+=分别实现相对左移和相对右移。

animate()方法还有另外一种形式,如下所示:

animate(params,options)
其中,params与第一种形式完全相同,options为动画可选参数列表,主要包括duration,esaing,callback,queue等,其中duration.easing.callback与第一种形式完全一样,queue为布尔值,表示当有多个 animate()组成jQuery时,当前animate()紧接这下一个animate(),是按顺序执行(true)还是同时触发false

如下例子,展示了animate()第二种用法。

    <style>

            div {

                background-color: #FFFF22;

                width: 100px;

                text-align: center;

                border: 2px solid #000000;

                margin: 3px;

                font-size: 13px;

                font-family: Arial, Helvetica, sans-serif;

            }

            input {

                border: 1px solid #000033;

            }

        </style>

        <script type="text/javascript">

            $(function() {

                $("input:eq(0)").click(function() {

                    //第一个animate与第二个animate同时执行,然后再执行第三个

                    $("#block1").animate({

                            width: "90%"

                        }, {

                            queue: false,

                            duration: 1500

                        })

                        .animate({

                            fontSize: "24px"

                        }, 1000)

                        .animate({

                            borderRightWidth: "20px"

                        }, 1000);

                });

                $("input:eq(1)").click(function() {

                    //依次执行三个animate

                    $("#block2").animate({

                            width: "90%"

                        }, 1500)

                        .animate({

                            fontSize: "24px"

                        }, 1000)

                        .animate({

                            borderRightWidth: "20px"

                        }, 1000);

                });

                $("input:eq(2)").click(function() {

                    $("input:eq(0)").click();

                    $("input:eq(1)").click();

                });

                $("input:eq(3)").click(function() {

                    //恢复默认设置

                    $("div").css({

                        width: "",

                        fontSize: "",

                        borderWidth: ""

                    });

                });

            });

        </script>

        <input type="button" id="go1" value="Block1动画">

        <input type="button" id="go2" value="Block2动画">

        <input type="button" id="go3" value="同时动画">

        <input type="button" id="go4" value="重置">

        <div id="block1">Block1</div>

        <div id="block2">Block2</div>

以上两个div块同时运用了三个动画效果,其中第一个div快的第一个动画添加了queue:false参数,使得前两项两个动画同时执行。可以通过重置反复测试,熟悉animate()第二种形式。

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jquery定时滑出可最小化的底部提示层特效代码
Oct 02 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
Feb 02 Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
vue2.0移除或更改的一些东西(移除index key)
Aug 28 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 Javascript
解决Antd Table表头加Icon和气泡提示的坑
Nov 17 Javascript
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 Vue.js
jquery制作 随机弹跳的小球特效
Feb 01 #Javascript
jQuery实现单击和鼠标感应事件
Feb 01 #Javascript
jquery制作LED 时钟特效
Feb 01 #Javascript
thinkphp 表名 大小写 窍门
Feb 01 #Javascript
javascript实现带节日和农历的日历特效
Feb 01 #Javascript
2种jQuery 实现刮刮卡效果
Feb 01 #Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 #Javascript
You might like
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python实现的栈(Stack)
2018/01/26 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
python3.7 的新特性详解
2019/07/25 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
留学推荐信写作指南
2014/01/25 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
授权收款委托书
2014/09/23 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
反邪教教育心得体会
2016/01/15 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
python中tkinter复选框使用操作
2021/11/11 Python
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis