<button>按钮</button>
<div></div>
div {width: 100px;height: 100px;padding: 10px;background: lightcoral;
}

基本动画

  1. show():显示元素
  2. hide():隐藏元素
  3. toggle():显示 → 隐藏;隐藏 → 显示
  • 隐藏就是设置了 display:none;
  • 接收 2 个参数:[time][fn]
    1. time:动画执行的时长,不设置就没有过渡效果
    2. fn:回调函数,动画完成后自动执行
$('button').click(() => {$('div').toggle(1000, () => {console.log('finish animation');})
});

拉下卷起动画

  • slideDown():打开

  • slideUp():收起

  • slideToddle():打开 → 收起;收起 → 打开

  • 隐藏就是设置了 display:none;

  • 接收 2 个参数:[time][fn]

    1. time:动画执行的时长,不设置就没有过渡效果
    2. fn:回调函数,动画完成后自动执行
$('button').click(() => {$('div').slideToggle(1000, () => {console.log('finish slide');})
});

淡入淡出动画

  1. fadeIn():淡入
  2. fadeOut():淡出
  3. fadeToggle():淡入 / 淡出
  • 隐藏就是设置了 display:none;
  • 接收 2 个参数:[time][fn]
    1. time:动画执行的时长,不设置就没有过渡效果
    2. fn:回调函数,动画完成后自动执行
$('button').click(() => {$('div').fadeToggle(1000, () => {console.log('finish fade');})
});
fadeTo():在指定时长内,将透明度修改到指定的值
  • 接收 4 个参数:speedopacityeasingfn

    1. speed:3 种预定速度的字符串 slownormalfast,或表示动画时长的毫秒数值 ( eg:1000 )
    2. opacity:表示透明度的数字 0 ~ 1
    3. [easing]:动画效果,JQuery 提供匀速linear、慢入慢出swing(默认)
    4. [fn]:在动画完成时执行的函数,每个元素执行一次
$('button').click(() => {$('div').fadeTo(1000, 0.5, () => {console.log('finish fadeTo');})
});

自定义动画

animate()

  • 用于创建自定义动画的函数

  • 接收 4 个参数:params[speed][easing][fn]

    • params:一个对象{ 属性名 ( 需要修改的属性 ) :属性值 ( 修改的值 ) }
    • speed:3 种预定速度的字符串 slownormalfast,或表示动画时长的毫秒数值 ( eg:1000 )
    • easing:动画效果,JQuery 提供匀速linear、慢入慢出swing(默认)
    • fn:在动画完成时执行的函数,每个元素执行一次
$('button').click(() => {$('div').animate({width: 200,height: 200}, 2000, 'linear', () => {console.log('动画执行完毕');});
});

一般来说,回调函数内的 this 指向当前 DOM 元素,此时我们可以通过 fn 参数设置动画的先后顺序

$('button').click(() => {$('div').animate({width: 500,}, 1000, 'linear', function () {console.log('finish width');$(this).animate({ // 注意将 this 转成 JQuery 对象height: 500}, 1000, 'swing', () => {console.log('finish height');})});
});

动画队列:如果给同一个元素,添加多个 animate() 动画,先设置的动画先执行(与上述代码等效)

$('button').click(() => {$('div').animate({ // 先设置,先执行width: 500,}, 1000, 'linear', function () {console.log('finish width');});$('div').animate({ // 后设置,后执行height: 500}, 1000, 'swing', () => {console.log('finish height');})
});

stop()

  • 用于停止动画的执行

  • 接收 2 个参数:clearQueuejumpToEnd

    1. clearQueue:默认 false → 不清空动画队列,继续下一个动画;true → 清空队列,立即结束动画
    2. jumpToEnd:默认 false → 停止当前动画;true → 立即完成当前动画
$('button.start').click(() => { // 生成动画队列$('div').animate({width: 500,}, 2000, 'linear', function () {console.log('finish width');});$('div').animate({height: 500}, 2000, 'swing', () => {console.log('finish height');})
});$('button.1').click(() => { // 立即结束当前动画,继续下一个动画$('div').stop(false, false);
})$('button.2').click(() => { // 立即完成当前动画,继续下一个动画$('div').stop(false, true);
})$('button.3').click(() => { // 立即结束当前动画,且不会继续执行$('div').stop(true, false);
})$('button.4').click(() => { // 立即完成当前动画,且不会继续执行$('div').stop(true, true);
})
<button class="start">开始</button>
<button class="1">false, false</button>
<button class="2">false, true</button>
<button class="3">true, false</button>
<button class="4">true, true</button>
<div class="box"></div>
div {margin: 10px;width: 100px;height: 100px;background: lightblue;
}
一般运用场景
$('button.left').click(() => {$('div').stop().animate({ // 使用 stop() 函数left: 500,}, 2000);
});$('button.down').click(() => { // 使用 stop() 函数$('div').stop().animate({top: 500,}, 2000)
});
<button class="left">左移</button>
<button class="down">下移</button>
<div class="box"></div>

这样就能在我点击后,停止正在执行的动画,并立即执行我点击的动画

finish()

  • 立即完成当前元素所有的动画
$('button.start').click(() => { // 生成动画队列$('div').animate({width: 500,}, 2000);$('div').animate({height: 500}, 2000)
});$('button.finish').click(() => {$('div').finish();
})
<button class="start">开始</button>
<button class="finish">完成</button>
<div class="box"></div>

delay()

  • 设置动画延迟
  • 接收 1 个参数:duration 延迟的时间,单位:毫秒
$('button.start').click(() => { // 生成动画队列$('div').delay(1000).animate({width: 500,}, 2000);
});

is(':animated')

  • :animated 是一个过滤器,匹配设置了动画的标签元素
  • is(exp) 是一个筛选器,判断该 JQuery 对象是否含有与 exp 匹配的元素,返回布尔值
  • is(':animated') 用于判断当前元素是否有动画在执行
  • 返回 true → 有动画正在执行;返回 false → 无动画正在执行
$('button.detection').click(() => {console.log($('div').is(':animated'));
})

【JQuery】动画相关推荐

  1. js进阶 13-6 jquery动画效果相关常用函数有哪些

    js进阶 13-6 jquery动画效果相关常用函数有哪些 一.总结 一句话总结:animate(),stop(),finish(),delat()四个. 1.stop()方法的基本用法是什么(sto ...

  2. Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 最近一直感觉自己好忙,每天都浑浑噩噩的过着,转眼间,好像有好长时间没有更新笨鸟到菜鸟了.现 ...

  3. 从零开始学习jQuery (七) jQuery动画-让页面动起来!

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  4. JQuery-学习笔记05【高级——JQuery动画和遍历】

    Java后端 学习路线 笔记汇总表[黑马程序员] JQuery-学习笔记01[基础--JQuery基础]--[day01] JQuery-学习笔记02[基础--JQuery选择器] JQuery-学习 ...

  5. jQuery 动画效果

    1.基本效果 (1)隐藏 hide() hide(speed [,callback]) (2)显示 show() show(speed [,callback]) (3)交替显示隐藏 toggle()  ...

  6. jquery笔记一:下载安装、语法、选择器、遍历选择元素的方法、jQuery动画

    目前 jQuery 兼容于所有主流浏览器, 包括 IE 6!开发时常用 jquery.js,上线用 jquery.min.js. jq插件 目前jQuery有三个大版本: (1)1.x.x: 兼容ie ...

  7. jQuery框架学习第七天:jQuery动画–jQuery让页面动起来!

    jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...

  8. js进阶 13 jquery动画函数有哪些

    js进阶 13 jquery动画函数有哪些 一.总结 一句话总结: 二.jquery动画函数有哪些 原生JavaScript编写动画效果代码比较复杂,而且还需要考虑兼容性.通过jQuery,我们使用简 ...

  9. [原创]jQuery动画弹出窗体支持多种展现方式

    今天刚写的利用jQuery动画弹出窗体,支持了string.Ajax.iframe.controls四种展现方式,具体细节下面慢慢介绍,先看效果图. 动画效果 从哪个对象上触发的即从该对象开始逐渐向屏 ...

  10. jquery动画切换引擎插件 Velocity.js 学习01

    一.Velocity.js介绍 Velocity是一个jQuery插件,重新实现了$.animate() 来产生更高的性能(速度也比CSS动画库更快),而包括新的功能,以提高动画工作流程. Veloc ...

最新文章

  1. [原译]理解并实现生成器模式
  2. asp.net core中IHttpContextAccessor和HttpContextAccessor的妙用
  3. webRTC——浏览器里的音视频通话
  4. C++多线程简单入门(Windows版本)
  5. 自己动手写CPU(4)移动操作指令的实现
  6. .Net Core3.0 日志 logging
  7. cd返回上一 git_如何使用Git实现自动化部署你的项目
  8. CVE-2021-3156:隐藏10年之久的 Sudo 漏洞,可使任意用户获得root 权限(详述)
  9. ios ffmpeg h264 encode
  10. Git基础之(十五)——分支管理——分支管理策略
  11. Python如何出矢量图
  12. python判断是否有弹出窗口_使用Python爬取弹出窗口信息的实例
  13. 2019互联网+直播平台开发如何发展?
  14. 结构体复数相乘c语言,复数乘法中的结构体赋值实现代码
  15. 查看电脑是否能插内存条
  16. 安装步骤_Saber 2016 安装步骤
  17. 注册表改win 7更新服务器,WIN7安装卡死在更新注册表设置真正解决办法
  18. linux ps 源代码,【linux】ps(示例代码)
  19. 关于redis缓存穿透浅析
  20. LeetCode069——x的平方根

热门文章

  1. 点云配准5 -辅助知识 最小二乘法代码实现拟合曲线(C++)
  2. LumaQQ启动脚本
  3. 1011:2.4将磅转换为千克
  4. spa单页面开发的尝试
  5. 用python写情书_《使用Python进行自然语言处理》学习笔记一 | 学步园
  6. 双显示器扩展怎么设置上下扩展
  7. IE浏览器默认主页被篡改,无法改回
  8. Buildroot 构建根文件系统(Jz2440)
  9. 交换机的全trunk模式(native vlan)
  10. QGis二次开发基础 -- 构建图层管理器