jQuery使用(八):运动方法

  • show()、hide()、toggle()
  • 参数:null或(duration,easing,callblack)
  • fadeIn()、fadeout()、fadeToggle()、fadeTo()
  • 参数:null或(duration,[opacity],easing,callblack)
  • slideDown(),slideUp(),slideToggle()
  • 参数:null或(duration,easing,callblack)
  • animate()
  • 参数:(target,duration,easing,callback)
  • stop()、finish()
  • 参数:true,false
  • delay()
  • 参数:(duration)
  • jQuery.fx.off true

 一、展示、隐藏、切换

 1.show()和hide()方法实现的主要原理就是操作DOM的display样式值(block,none);很简单的应用,直接上代码:

//html
<div class="demo"><p>user:小明</p><ul><li>全部订单</li><li>个人钱包</li><li>个人资料</li><li>退出</li></ul>
</div>//css
.demo{width: 150px;border: 1px solid red;
}
ul{display: none;
}//js
$("p").on("mouseenter",function(){$(this).next().show(1500);
});
$(".demo").on("mouseleave",function(){$("p").next().hide(1000);
});

2.在示例中,应用了渐变式的显示和隐藏,操作方式就是给show()和hide()方法传入指定的渐变时间。渐变时间本质上就是在指定的时间内将DOM的宽、高、透明度、内边距、外边距从零到指定的值。下面是通过控制台监控到的渐变过程的截图:

3.show()和hide()方法还有两个参数:easingcallback

  • easing:控制渐变速度==>"swing" - 在开头/结尾移动慢,在中间移动快;"linear" - 匀速移动
  • callback:回调函数,在事件程序执行完以后执行

4.toggle()这个方法在1.9版本就被移除了,拿出来说是因为这种交互设计在一定情况下比较符合人的行为逻辑,值得学习一下,我就直接搬运手册的示例展示一下:(第一次点击字体颜色变红,第二次点击字体颜色变蓝,第三次字体颜色变绿,再点击又变红,以此类推。)

//html
<p>我的脸</p>
//js
$("p").toggle(function(){$("p").css({"color":"red"});},function(){$("p").css({"color":"blue"});},function(){$("p").css({"color":"green"});
});

 二、淡入淡出与卷入卷出

 在开头的列表中已经列出了接口的使用语法,这两个系列的方法可以说是简化版的展示隐藏,其参数使用基本一致,所以只做文字说明,不提供示例代码。

  • fadeIn()、fadeout()、fadeToggle()、fadeTo()

  • 参数:null或(duration,[opacity],easing,callblack)

  fade翻译是褪色的意思,所以这一系列动画效果就是操作DOM的透明度,前面讲到显示和隐藏时我们了解到除了核心实现的是display的样式外,会还有一系列的渐变过程。fade系列方法也一样,核心实现是display的样式,但是动画渐变效果只针对opacity样式操作透明度。反过来说就是除了透明度以外的宽高边距都是直接展示样式的最大值,只有opacity的样式实现渐变效果。而且fade系列动画还增加了一个参数:opacity可以指定透明度渐变到指定值。

  fadeIn()实现淡入效果;fadeout()实现淡出效果;

  fadeToggle()实现淡入淡出双向效果,当DOM是显示状态时触发这个动画事件就会淡出,当DOM是隐藏状态时触发这个动画事件就会淡入。

  fadeTo()实现逐渐改变元素透明度,这个动画效果不会修改display样式,仅仅只对元素透进行明度操作。

  • slideDown(),slideUp(),slideToggle()

  • 参数:null或(duration,easing,callblack)

  slide翻译是滑动的意思,通常我们也把这类动画效果叫做用卷入卷出效果,其实现思想与fade系列动画完全一致,fade系列操作的是透明度,slide则是操作高度(height)来实现。参数和显示隐藏方法完全一致。

  sildeDown()实现卷入效果,从上到下将隐藏的元素展示出来。

  sildeUp()实现卷出效果,从下到上将显示的元素隐藏。

  sildeToggle()实现双向卷入卷出效果,与fadeToggle()的实现思想一致。

 三、玩转jQuery动画之自定义动画——animate()

 听说能用这个方法做各种复查的动画效果?

 是的。

 但是,我要告诉你的是,我不仅会在这篇博客来解析它的用法,还会在下一篇博客中针对它的底层实现原理进行剖析,就是会写模拟功能的源码队列及实现原理、基于队列模拟实现animate(),激动吧!

  • (selector).animate({styles},speed,easing,callback)

  • {styles}:运动的目标位置
  • speed:运动速度
  • easing:速度变化规律
  • callback:回调函数

 实际应用animate()非常的简单,下面就实现一个简单的弹力效果:

//html
<div class="demo" style="width: 100px; height:100px; background-color: red; position: absolute;"></div>//js
$(".demo").animate({left:"+=100px",top:"+=150px"},1000,"swing",function(){$(this).animate({left:"+=50px",top:"-=100px"},800,"swing",function(){$(this).animate({left:"+=10px",top:"+=100px"},1000,"swing");});
});

偷偷告诉你这里挖坑了,嘻嘻。。。这个坑暂时还不能在这里解析,后面的博客会有一篇《回调地狱》来拉你出来。

 四、控制动画

在大多数情况下,动画都是由事件触发,中途有暂停,直接运动到某个位置或者终点,甚至有需求是直接跳过动画,也有为了让页面运行在设备配置较低的机器上,直接关闭动画效果的情况。这些需求就需要stop、finish、delay、jQuery.fx.off true来实现。

//html
<div class="demo" style="width: 100px; height:100px; background-color: red; position: absolute; top: 50px;"></div>
<button class="stopBtn">stop</button>
<button class="finishBtn">finish</button>
<button class="delayBtn">delay</button>
<button class="animateBtn">animate</button>
  • stop():不写参数时触发stop函数执行的效果是终止当前动画执行,如果DOM只有当前动画或者是动画中的最后一个动画,就会停在当前位置;如果是多个动画效果中途触发stop函数,终止当前动画效果,直接到达下一个动画起始点,并开始执行下一个动画。
//单个动画效果--多个动画效果就不演示了
$(".animateBtn").on("click",function(){$(".demo").animate({left:"+=300px",top:"+=100px"},3000); }); $(".stopBtn").on("click",function(){$(".demo").stop(); });
  • stop(true)、stop(true,true):当传入一个参数true时,不管第几个动画,只要触发stop函数就会让DOM停止在当前位置,后面的所有动画都不会执行。当传入两个参数true,true时,则是取消当前动画效果,并直接到达当前动画的重点,且后面的动画不执行。这两个效果就不写代码了,大家自己测试,这里我想把前面挖的一个坑填一下。

当我们使用show和hide实现显示和隐藏时,假设我们连续多次触发了,会出现多次回弹,直到所有触发效果执行完。这会严重影响体验,这里我们就可以使用stop来解决:

//这篇博客的第一个示例js代码修改成下面代码
$("p").on("mouseenter",function(){$(this).next().stop().show(1500,'swing');console.log(this);
});
$(".demo").on("mouseleave",function(){$("p").next().stop().hide(1000,'linear');
});
  • finish():取消所有动画效果,将DOM由当前位置呈直线效果直接移动到最后的目标位置(过程非常快)。
$(".animateBtn").on("click",function(){$(".demo").animate({left:"+=300px",top:"+=100px"},1000,"swing",function(){$(".demo").animate({left:"+=100px",top:"-=50px"},500,"swing",function(){$(".demo").animate({left:"+=30",top:"+=50px"},600,"swing");});});
});
$(".finishBtn").on("click",function(){$(".demo").finish();
});
  • delay():延迟动画执行,可以理解为暂停动画。在动画的中间插入这个方法,并传入延迟时间作为参数。
$(".animateBtn").on("click",function(){$(".demo").animate({left:"+=300px",top:"+=100px"},1000,"swing",function(){$(".demo").delay(3000)//这里延迟3秒.animate({left:"+=100px",top:"-=50px"},500,"swing",function(){$(".demo").animate({left:"+=30",top:"+=50px"},600,"swing");});});
});
  • jQuery.fx.off=true;会取消所有动画效果,被触发的动画直接从起始点到达动画的结束位置,中间不会有任何过渡效果,但是延迟效果依然会保留

 五、jQuery动画插件:Easing Plugin

 目的:用于扩展动画效果;

连接地址:http://plugins.jquery.com/jquery.easing/

使用可参考这位大佬的博客:http://www.cnblogs.com/interstellar/p/6562446.html

<script type="text/javascript" src="jquery-2.0.3.js"></script>
<!--easing插件-->
<script type="text/javascript" src="jquery.easing.1.3.min.js"></script>

$(".animateBtn").on("click",function(){$(".demo").animate({left:"+=300px",top:"+=100px"},1000,"easeInOutBack",function(){$(".demo")//.delay(3000)//这里延迟3秒.animate({left:"+=100px",top:"-=50px"},500,"easeInElastic",function(){$(".demo").animate({left:"+=30",top:"+=50px"},600,"swing");});});
});

将插件引入后,easing参数就可以使用插件提供的效果了,之前的swing只是改变速率,有了插件还可以改变路径。大家有兴趣的话可以玩玩这个插件,学习学习咯。

 

转载于:https://www.cnblogs.com/ZheOneAndOnly/p/10362908.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器重装后怎么装系统,服务器如何安装系统,小编教你如何安装

相对于普通PC来说&#xff0c;服务器有很多优点&#xff0c;比如在工作上的效率会比PC高出许多&#xff0c;但也有一些缺点其中的服务器系统的安装有时候缺乏人性化就是原因之一了。第一次安装服务器系统&#xff0c;会遇到很多麻烦&#xff0c;下面&#xff0c;小编就给大家带…

html:(15):用css样式给表格添加边框和caption标签

用css样式&#xff0c;为表格加入边框 Table 表格在没有添加 css 样式之前&#xff0c;是没有边框的。这样不便于我们后期合并单元格知识点的讲解&#xff0c;所以在这一节中我们为表格添加一些样式&#xff0c;为它添加边框。 在右侧代码编辑器中添加如下代码&#xff1a; …

Java集合容器面试题

文章目录集合容器概述什么是集合集合的特点集合和数组的区别使用集合框架的好处常用的集合类有哪些&#xff1f;List&#xff0c;Set&#xff0c;Map三者的区别&#xff1f;List、Set、Map 是否继承自 Collection 接口&#xff1f;List、Map、Set 三个接口存取元素时&#xff0…

荒野行动服务器维护,荒野行动11月30日维护更新完毕服务器已开放 ! 更新优化内容说明...

荒野行动11月30日服务器维护完了&#xff0c;这里手机乐园寻隐者不遇小编给大家带来了具体的优化和更新的内容&#xff0c;咱们往下看&#xff01;亲爱的荒野精英们&#xff1a;欢迎加入《荒野行动》&#xff0c;享受畅快的射击竞技游戏。我们计划在北京时间11月30日凌晨6-8点&…

html:(16):a标签

使用<a>标签&#xff0c;链接到另一个页面 使用<a>标签可实现超链接&#xff0c;它在网页制作中可以说是无处不在&#xff0c;只要有链接的地方&#xff0c;就会有这个标签。 语法&#xff1a; <a href"目标网址" title"鼠标滑过显示的文本…

html:(17):img标签和表单标签

认识<img>标签&#xff0c;为网页插入图片 在网页的制作中为使网页炫丽美观&#xff0c;肯定是缺少不了图片&#xff0c;可以使用<img>标签来插入图片。 语法&#xff1a; <img src"图片地址" alt"下载失败时的替换文本" title "提…

技嘉服务器主板装系统,技嘉主板bios设置图解教程

BIOS(基本输入/输出系统)是被固化在计算机CMOS RAM芯片中的一组程序&#xff0c;为计算机提供最初的、最直接的硬件控制。正确设置BIOS可大大提高系统性能。技嘉主板bios设置方法是什么&#xff0c;很多人很多时候都需要进入bios设置&#xff0c;对于电脑高手来说&#xff0c;这…

[剑指offer][JAVA]面试题第[07]题[重建二叉树][递归]

【问题描述】[中等] 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如&#xff0c;给出前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a;3/ …

html:(18):文本输入框,密码输入框,文本域

文本输入框、密码输入框 当用户要在表单中键入字母、数字等内容时&#xff0c;就会用到文本输入框。文本框也可以转化为密码输入框。 语法&#xff1a; <form><input type"text/password" name"名称" value"文本" /> </form&g…

文件共享服务器地址格式,文件共享服务器配置

文件共享服务器配置 内容精选换一换提供多个业务节点提供共享的日志输出目录&#xff0c;方便分布式应用的日志收集和管理。业务特点&#xff1a;多个业务主机挂载同一个共享文件系统&#xff0c;并发打印日志。大文件小I/O&#xff1a;单个日志文件比较大&#xff0c;但是每次…

[剑指offer]面试题第[28]题[Leedcode][JAVA][第101题][对称二叉树][队列][递归]

【问题描述】[简单] 给定一个二叉树&#xff0c;检查它是否是镜像对称的。例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \ 3 4 4 3【解答思路】 1. 递归 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(1) public boolean isSymmetric(TreeNod…

html:(19):单选框,复选框,下拉列表框

使用单选框、复选框&#xff0c;让用户选择 在使用表单设计调查表时&#xff0c;为了减少用户的操作&#xff0c;使用选择框是一个好主意&#xff0c;html中有两种选择框&#xff0c;即单选框和复选框&#xff0c;两者的区别是单选框中的选项用户只能选择一项&#xff0c;而复…

[Leedcode][JAVA][第84题][柱状图中最大的矩形][暴力][单调栈]

【问题描述】[困难] 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。以上是柱状图的示例&#xff0c;其中每个柱子的宽度为 1&#xff0c;给定的高度为 […

html:(20):使用下拉框进行多选和使用提交按钮提交

使用下拉列表框进行多选 下拉列表也可以进行多选操作&#xff0c;在<select>标签中设置multiple"multiple"属性&#xff0c;就可以实现多选功能&#xff0c;在 windows 操作系统下&#xff0c;进行多选时按下Ctrl键同时进行单击&#xff08;在 Mac下使用 Comm…

html:(21):重置按钮和label标签

使用重置按钮&#xff0c;重置表单信息 当用户需要重置表单信息到初始时的状态时&#xff0c;比如用户输入“用户名”后&#xff0c;发现书写有误&#xff0c;可以使用重置按钮使输入框恢复到初始状态。只需要把type设置为"reset"就可以。 语法&#xff1a; <i…

[Leedcode][JAVA][第1431题][拥有糖果最多的孩子][暴力][六一儿童节]

【问题描述】[中等] 给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果…

生产系统服务器是啥意思,生产系统服务器主机名怎么看

生产系统服务器主机名怎么看 内容精选换一换部署组复制的最常见方法是使用多个服务器实例&#xff0c;以提供高可用性。也可以在本地部署组复制&#xff0c;例如出于测试目的。注意:组复制通常部署在多个主机上&#xff0c;因为这样可以确保提供高可用性。本地部署不适用于生产…

html:(22):认识css样式和css的优势

认识CSS样式 CSS全称为“层叠样式表 (Cascading Style Sheets)”&#xff0c;它主要是用于定义HTML内容在浏览器内的显示样式&#xff0c;如文字大小、颜色、字体加粗等。 如下列代码&#xff1a; p{font-size:12px;color:red;font-weight:bold; } 使用CSS样式的一个好处是…

hana-banach定理

1. x1不是X除开G以外所有的空间 2.如果极大元不是全空间的话&#xff0c;根据前面的讨论&#xff0c;还可以延拓&#xff0c;这就和极大矛盾了转载于:https://www.cnblogs.com/china520/p/10388862.html

boa服务器实现温湿度显示,SMT车间温湿度分布式远程监控系统的设计

随着SMT生产工艺技术的提高&#xff0c;生产车间对环境的温湿度提出了温度253℃。湿度45&#xff05;RH&#xff5e;65&#xff05;RH的要求。为了达到这样的温湿度要求&#xff0c;就不仅需要提高温湿度传感器的精度&#xff0c;而且要求现场的管理人员能够实时的查看现场的环…