Jquery动画,排队与并发
一、事件绑定
1.鼠标事件:模拟触发
什么是模拟触发?
虽然没有点在按钮上,也可以触发按钮的事件处理函数。
如何:$元素.trigger("事件名")
即使没有点在指定的元素上,也能触发该元素上绑定的事件处理函数。
简写:如果要触发的事件,刚好是21种简写中的一种,可使用事件处理函数一个函数两用的方法触发:
$元素.事件名()
强调:()中不要加处理函数
二、动画
简单动画:写死的固定不变的三种动画效果:
1.显示隐藏:.show()、.hide()、.toggle()
问题:.show() 、.hide()不加参数时,默认使用display:block和display:none控制瞬间显示隐藏。
如果想有动画效果,必须加持续事件参数。
2.上滑下滑: .slideUp()、.slideDown()、.slideToggle()
3.淡入淡出:.fadeIn()、.fadeOut()、.fadeToggle()
简单动画所有函数的共性问题:
1.效果是写死的!几乎不可维护!
2.用js定时器和DOM操作模拟的动画效果-----效率极低
但是,.show()、.hide()、.toggle()在不加参数时,代替的是.css("display","block/none"),
这个是没有效率和可维护性损失的。所以,这三个不加参数的情况,还是非常推荐使用的。
2.万能动画:
什么是:可对任意css属性应用动画效果
何时:只要希望对任意css属性应用动画效果时
如何:
1.$元素.animate({ css属性:目标值 } [动画持续时间,callback])
2.让当前元素从现在的状态,经过指定的时间后,缓慢过渡到目标状态。
3.强调:animate()中只需要些目标值,animate()可自动获得当前的对应属性值,自动计算变化的距离。
问题:
1.也是用js定时器和DOM操作模拟的动画效果
2.其实只支持单个数值的css属性,不支持CSS3动画,不支持颜色过渡。
排队和并发:
1.并发执行:多个css属性同时变化
如何:一个animate()内的多个css属性默认并发执行。
2.排队并发:多个css属性按顺序依次先后变化
如何:对同一个元素先后调用多次animate()函数,多次animate函数中的css属性是排队执行。
原理:其实在jq中,每个元素都有一个动画队列。
调用animate时,其实并不是立刻播放动画的意思,仅仅是将动画加入队列中保存
能否立刻执行动画,取决于当前动画之前是否有等待的或正在执行的其他动画。
在动画结束后自动执行:
问题:jq的动画函数都是用js定时器模拟的,所以都是异步的!
解决:每个动画函数都提供了最后一个参数,是一个回调函数。写在这个回调函数中的代码,
都是在动画结束后,才自动调用的。
停止动画:$元素.stop()
坑:默认只能停止当前正在播放的一个动画。如果队列中后续还有其他动画,则依然继续执行。
解决:$元素.stop(true) 停止当前动画,且清除动画队列。
判断一个元素是否在播放jquery动画:
1.:animated 选择器
2.专门匹配正在播放动画的元素
4.类数组对象操作:
js中类数组对象很受歧视,长得像数组,但数组家的好用的函数,类数组对象都用不了。
但是,jq中创建的jq对象,都是类数组对象,于是,JQuery就为jq对象,模拟出了两个和数组家功能相似的函数:
1.遍历:
js数组中:arr.forEach(function(elem,i,arr){....})
jq中:$(查找结果).each(function(i,DOM元素){....})
依次取出.前的查找结果集合中的每个DOM元素,执行相同的操作!
2.查找:js数组中:var i =arr.indexOf(值)
js中:var i=$(查找结果).index(元素) 查找元素在结果集合中的位置i
Jquery动画,排队与并发的更多相关文章
- 深入学习jQuery动画控制
× 目录 [1]动画状态 [2]停止动画 [3]动画延迟[4]全局控制 前面的话 jQuery动画可以使用fade.hide.slide等方法实现基本动画效果,可以使用animate实现自定义动画,甚 ...
- 让网站动起来!12款优秀的 jQuery 动画插件推荐
如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...
- jquery 动画总结(主要指效果函数)
动画无非两类:帧动画frame和变形动画tween,以及3d动画.不论web还是安卓苹果app,动画原理都是这些. web app 动画实现的途径,无非这几种:1 gif动画---这就是帧动画,把若干 ...
- js进阶 13 jquery动画函数有哪些
js进阶 13 jquery动画函数有哪些 一.总结 一句话总结: 二.jquery动画函数有哪些 原生JavaScript编写动画效果代码比较复杂,而且还需要考虑兼容性.通过jQuery,我们使用简 ...
- js进阶 13-6 jquery动画效果相关常用函数有哪些
js进阶 13-6 jquery动画效果相关常用函数有哪些 一.总结 一句话总结:animate(),stop(),finish(),delat()四个. 1.stop()方法的基本用法是什么(sto ...
- 让网站动起来!12款优秀的 jQuery 动画
Textillate.js 介绍:Textillate.js 是一个简单的 CSS3 文本动画插件.结合了一些非常棒的库,把 CSS3 动画轻松应用到任何文本.只需要在项目中简单地引入 textill ...
- jQuery动画的实现
没有引入deferred机制,其余流程都有了 //////////// //创建动画缓动对象 // //////////// function Tween(value, prop, animation ...
- 深入学习jQuery动画队列
前面的话 队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现.本文将详细介绍jQuery动画队列 queue() queue()方法用来显示在匹配的元素上的已经执行的函数队列 q ...
- jquery动画,基础以及我发现的新大陆
$.animate()在jquery官方介绍有2中方式,其实我发现的新大陆也是第二种方式的扩展! 一.$.animate( properties [, duration ] [, easing ] [ ...
随机推荐
- GOLANG 闭包和普通函数的区别
闭包和匿名函数是一回事 闭包使用完毕之后不会自动释放,值依然存在 普通函数调用完毕后,值会自动释放
- 2019-2020-1 20199328《Linux内核原理与分析》第四周作业
<Linux内核原理与分析>第四周作业 步骤一 首先我们指定一个内核并指定内存根文件系统,这里的bzImage是vmLinux经过gzip压缩的内核,"b"表示&quo ...
- latex-列表环境
介绍 latex 主要有三种列表环境,进行罗列的实现, 无序列表 -- itemize 有序列表 -- enumerate 描述列表 -- description 本文进行了一一介绍和演示, 同时添加 ...
- 在java中构建高效的结果缓存
文章目录 使用HashMap 使用ConcurrentHashMap FutureTask 在java中构建高效的结果缓存 缓存是现代应用服务器中非常常用的组件.除了第三方缓存以外,我们通常也需要在j ...
- SpringBoot中使用Fastjson/Jackson对JSON序列化格式化输出的若干问题
来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjso ...
- Java程序员必备基础结构图
前言 最近看了深入理解Java虚拟机第三版,整理了一些基础结构图,算是比较全的了,做一下笔记,大家一起学习. 1.Java虚拟机运行时数据区图 JVM内存结构是Java程序员必须掌握的基础. 程序计数 ...
- Galera将死——MySQL Group Replication正式发布
2016-12-14 来源:InsideMySQL 作者:姜承尧 MySQL Group Replication GA 很多同学表示昨天的从你的全世界路过画风不对,好在今天MySQL界终于有大事情发生 ...
- Python(Redis 中 Set/Zset 类型数据和其他操作)
1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...
- uniapp 踩坑
获取数据 可在 onLoad 生命周期中获取数据,接收一个参数 option 为上个页面传递的参数. 点击事件tap代替click 两者都会在点击时触发,但是在web手机端,clikc会有300ms延 ...
- 编程坑太多,Map 集合怎么也有这么多坑?一不小心又踩了好几个!
点赞再看,养成习惯,微信搜索『程序通事』,关注就完事了! 点击查看更多历史文章 上一篇 List 踩坑文章中,我们提到几个比较容易踩坑的点.作为 List 集合好兄弟 Map,我们也是天天都在使用,一 ...