当前位置: 首页 > 编程日记 > 正文

前端 ----jQuery的动画效果

03-jQuery动画效果

jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。

显示动画

方式一:

  $("div").show();

解释:无参数,表示让指定的元素直接显示出来。其实这个方法的底层就是通过display: block;实现的。

方式二:

$('div').show(3000);

解释:通过控制元素的宽高、透明度、display属性,逐渐显示,2秒后显示完毕。

方式三:

 $("div").show("slow");

参数可以是:

  • slow 慢:600ms

  • normal 正常:400ms

  • fast 快:200ms

解释:和方式二类似,也是通过控制元素的宽高、透明度、display属性,逐渐显示。

方式四:

 //show(毫秒值,回调函数;$("div").show(5000,function () {alert("动画执行完毕!");});

解释:动画执行完后,立即执行回调函数。

总结:

上面的四种方式几乎一致:参数可以有两个,第一个是动画的执行时长,第二个是动画结束后执行的回调函数。

隐藏动画

方式参照上面的show()方法的方式。如下:

复制代码
    $(selector).hide();$(selector).hide(1000); $(selector).hide("slow");$(selector).hide(1000, function(){});
复制代码

实现点击按钮显示盒子,再点击按钮隐藏盒子

代码如下:

复制代码
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">#box{width: 200px;height: 200px;background-color: green;border: 1px solid red;display: none;}</style></head><body><div id="box">        </div><button id="btn">隐藏</button>    </body><script src="jquery-3.3.1.js"></script><script type="text/javascript">//jquery 提供了一些方法 show() hide() 控制元素显示隐藏var isShow = true;$('#btn').click(function(){if(isShow){$('#box').show('slow',function(){$(this).text('盒子出来了');            $('#btn').text('显示');isShow = false;})}else{$('#box').hide(2000,function(){$(this).text('');    $('#btn').text('隐藏');isShow = true;})}})</script>
</html>
复制代码

开关式显示隐藏动画

$('#box').toggle(3000,function(){});

显示和隐藏的来回切换采用的是toggle()方法:就是先执行show(),再执行hide()。

代码如下:

复制代码
    $('#btn').click(function(){$('#box').toggle(3000,function(){$(this).text('盒子出来了');    if ($('#btn').text()=='隐藏') {$('#btn').text('显示');    }else{$('#btn').text('隐藏');    }});})
复制代码

滑入和滑出

1、滑入动画效果:(类似于生活中的卷帘门)

$(selector).slideDown(speed, 回调函数);

解释:下拉动画,显示元素。

注意:省略参数或者传入不合法的字符串,那么则使用默认值:400毫秒(同样适用于fadeIn/slideDown/slideUp)

2、滑出动画效果:

 $(selector).slideUp(speed, 回调函数);

解释:上拉动画,隐藏元素。

3、滑入滑出切换动画效果:

 $(selector).slideToggle(speed, 回调函数);

代码如下:

复制代码
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><style>div {width: 300px;height: 300px;display: none;background-color: green;}</style><script src="jquery-3.3.1.js"></script><script>$(function () {//点击按钮后产生动画$("button:eq(0)").click(function () {//滑入动画: slideDown(毫秒值,回调函数[显示完毕执行什么]);$("div").slideDown(2000, function () {alert("动画执行完毕!");});})//滑出动画$("button:eq(1)").click(function () {//滑出动画:slideUp(毫秒值,回调函数[显示完毕后执行什么]);$("div").slideUp(2000, function () {alert("动画执行完毕!");});})$("button:eq(2)").click(function () {//滑入滑出切换(同样有四种用法)$("div").slideToggle(1000);})})</script>
</head>
<body>
<button>滑入</button>
<button>滑出</button>
<button>切换</button>
<div></div></body>
</html>
复制代码

淡入淡出动画

1、淡入动画效果:

 $(selector).fadeIn(speed, callback);

作用:让元素以淡淡的进入视线的方式展示出来。

2、淡出动画效果:

$(selector).fadeOut(1000);

作用:让元素以渐渐消失的方式隐藏起来

3、淡入淡出切换动画效果:

 $(selector).fadeToggle('fast', callback);

作用:通过改变透明度,切换匹配元素的显示或隐藏状态。

参数的含义同show()方法。

代码如下:

复制代码
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><style>div {width: 300px;height: 300px;display: none;/*透明度*/opacity: 0.5;background-color: red;}</style><script src="jquery-3.3.1.js"></script><script>$(function () {//点击按钮后产生动画$("button:eq(0)").click(function () {//                //淡入动画用法1:   fadeIn();   不加参数$("div").fadeIn();//                //淡入动画用法2:   fadeIn(2000);   毫秒值
//                $("div").fadeIn(2000);
//                //通过控制  透明度和display//淡入动画用法3:   fadeIn(字符串);   slow慢:600ms   normal正常:400ms   fast快:200ms
//                $("div").fadeIn("slow");
//                $("div").fadeIn("fast");
//                $("div").fadeIn("normal");//淡入动画用法4:   fadeIn(毫秒值,回调函数[显示完毕执行什么]);
//                $("div").fadeIn(5000,function () {
//                    alert("动画执行完毕!");
//                });})//滑出动画$("button:eq(1)").click(function () {
//                //滑出动画用法1:   fadeOut();   不加参数$("div").fadeOut();//                //滑出动画用法2:   fadeOut(2000);   毫秒值
//                $("div").fadeOut(2000);  //通过这个方法实现的:display: none;
//                //通过控制  透明度和display//滑出动画用法3:   fadeOut(字符串);   slow慢:600ms   normal正常:400ms   fast快:200ms
//                $("div").fadeOut("slow");
//                $("div").fadeOut("fast");
//                $("div").fadeOut("normal");//滑出动画用法1:   fadeOut(毫秒值,回调函数[显示完毕执行什么]);
//                $("div").fadeOut(2000,function () {
//                    alert("动画执行完毕!");
//                });})$("button:eq(2)").click(function () {//滑入滑出切换//同样有四种用法$("div").fadeToggle(1000);})$("button:eq(3)").click(function () {//改透明度//同样有四种用法$("div").fadeTo(1000, 0.5, function () {alert(1);});})})</script>
</head>
<body>
<button>淡入</button>
<button>淡出</button>
<button>切换</button>
<button>改透明度为0.5</button>
<div></div></body>
</html>
复制代码

自定义动画

语法:

 $(selector).animate({params}, speed, callback);

作用:执行一组CSS属性的自定义动画。

  • 第一个参数表示:要执行动画的CSS属性(必选)

  • 第二个参数表示:执行动画时长(可选)

  • 第三个参数表示:动画执行完后,立即执行的回调函数(可选)

代码如下:

复制代码
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><style>div {position: absolute;left: 20px;top: 30px;width: 100px;height: 100px;background-color: green;}</style><script src="jquery-3.3.1.js"></script><script>jQuery(function () {$("button").click(function () {var json = {"width": 500, "height": 500, "left": 300, "top": 300, "border-radius": 100};var json2 = {"width": 100,"height": 100,"left": 100,"top": 100,"border-radius": 100,"background-color": "red"};//自定义动画$("div").animate(json, 1000, function () {$("div").animate(json2, 1000, function () {alert("动画执行完毕!");});});})})</script>
</head>
<body>
<button>自定义动画</button>
<div></div>
</body>
</html>
复制代码

停止动画

$(selector).stop(true, false);

里面的两个参数,有不同的含义。

第一个参数:

  • true:后续动画不执行。

  • false:后续动画会执行。

第二个参数:

  • true:立即执行完成当前动画。

  • false:立即停止当前动画。

PS:参数如果都不写,默认两个都是false。实际工作中,直接写stop()用的多。

案例:鼠标悬停时,弹出下拉菜单(下拉时带动画)

复制代码
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><style type="text/css">* {margin: 0;padding: 0;}ul {list-style: none;}.wrap {width: 330px;height: 30px;margin: 100px auto 0;padding-left: 10px;background-color: pink;}.wrap li {background-color: green;}.wrap > ul > li {float: left;margin-right: 10px;position: relative;}.wrap a {display: block;height: 30px;width: 100px;text-decoration: none;color: #000;line-height: 30px;text-align: center;}.wrap li ul {position: absolute;top: 30px;display: none;}</style><script src="jquery-3.3.1.js"></script><script>//入口函数$(document).ready(function () {//需求:鼠标放入一级li中,让他里面的ul显示。移开隐藏。var jqli = $(".wrap>ul>li");//绑定事件jqli.mouseenter(function () {$(this).children("ul").stop().slideDown(1000);});//绑定事件(移开隐藏)jqli.mouseleave(function () {$(this).children("ul").stop().slideUp(1000);});});</script></head>
<body>
<div class="wrap"><ul><li><a href="javascript:void(0);">一级菜单1</a><ul><li><a href="javascript:void(0);">二级菜单2</a></li><li><a href="javascript:void(0);">二级菜单3</a></li><li><a href="javascript:void(0);">二级菜单4</a></li></ul></li><li><a href="javascript:void(0);">二级菜单1</a><ul><li><a href="javascript:void(0);">二级菜单2</a></li><li><a href="javascript:void(0);">二级菜单3</a></li><li><a href="javascript:void(0);">二级菜单4</a></li></ul></li><li><a href="javascript:void(0);">三级菜单1</a><ul><li><a href="javascript:void(0);">三级菜单2</a></li><li><a href="javascript:void(0);">三级菜单3</a></li><li><a href="javascript:void(0);">三级菜单4</a></li></ul></li></ul>
</div>
</body>
</html>
复制代码

ps:

javascript:void(0); //跟javascript:;效果一样

上方代码中,关键的地方在于,用了stop函数,再执行动画前,先停掉之前的动画。

转载于:https://www.cnblogs.com/liuafan/p/9525876.html

相关文章:

结构和联合--结构体内存和位段内存开辟规则

一. 结构的基本知识 聚合数据类型能够存储多个数据&#xff0c;C语言提供了两种类型的聚合数据类型&#xff0c;数组和结构。数组是相同的数据&#xff0c;结构是不同类型的数据聚合。结构也是一些值得集合&#xff0c;这些值成为它的成员&#xff0c;每个结构都有它的名字&a…

antd自定义分页器_自定义分页器

classPagination(object):def __init__(self, current_page, all_count, per_page_num10, pager_count11):"""封装分页相关数据:param current_page: 当前页:param all_count: 数据库中的数据总条数:param per_page_num: 每页显示的数据条数:param pager_count:…

.net实现跨页面传值

//一般用于向php&#xff0c;jsp等传值&#xff0c;因为跨语言session等不能共用&#xff0c;只有通过post提交 //下面演示的是服务器端控件提交 PostBackUrl"WebForm3.aspx"//这个页面只需要修改控件属性就能把值传给下一页面 protected void Page_Load(object send…

进程的同步、互斥以及PV原语

在处理进程间的同步与互斥问题时&#xff0c;我们离不开信号量和PV原语&#xff0c;使用这两个工具的目的在于打造一段不可分割不可中断的程序。应当注意的是&#xff0c;信号量和PV原语是解决进程间同步与互斥问题的一种机制&#xff0c;但并不是唯一的机制。 信号量&#xff…

ListT中,Remove和RemoveAt区别

Remove删除的是匹配的第一项。比如你的list里面有2个相同的项。那么就删除第一个。后面的不删除&#xff0c;找不到元素和删除失败都返回falseRemoveAt是删除索引下的项 转载于:https://www.cnblogs.com/mcyushao/p/9526208.html

vue 如何处理两个组件异步问题_Vue动态异步组件实现思路及其问题

前言&#xff1a;在vue官方资料中&#xff0c;我们可以可以很学会如何通过vue构建“动态组件”以及“异步组件”&#xff0c;然而&#xff0c;在官方资料中&#xff0c;并没有涉及到真正的“动态异步”组件&#xff0c;经过大量的时间研究和技术分析&#xff0c;我们给出目前比…

[转载] 七龙珠第一部——第004话 掳人的妖怪——乌龙

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2013/04/07/3003566.html

如何解决资料下载下来为index.html和PHP文件的问题?

最近很多Down友反映&#xff0c;在下载中心下载资料时&#xff0c;明明是pdf、rar、zip格式的文件&#xff0c;下载完后怎么就变成index.html、php格式的文件了&#xff1f;既浪费了下载豆&#xff0c;文件还不能用&#xff0c;心疼啊&#xff01;这是因为下载系统是动态获取的…

给大家推荐8个SpringBoot精选项目

前言 2017年&#xff0c;曾在自己的博客中写下这样一段话&#xff1a;有一种力量无人能抵挡&#xff0c;它永不言败生来倔强。有一种理想照亮了迷茫&#xff0c;在那写满荣耀的地方。 如今2018年已过大半&#xff0c;虽然没有大理想抱负&#xff0c;但是却有自己的小计划。下面…

点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例...

NotificationManager notificationManager (NotificationManager)getSystemService(NOTIFICATION_SERVICE);Notification notification new Notification(R.drawable.logo_icon_16,"移动营销", System.currentTimeMillis());Intent intent new Intent(Intent.ACTI…

函数返回类的对象与拷贝构造函数

C中&#xff0c;如果我们在一个函数中&#xff0c;定义了一个类的对象&#xff0c;然后返回这个对象&#xff0c;在main函数中用一个对象去接受这个返回的对象的时候&#xff0c;这里面参与的函数调用大家可能不熟悉&#xff0c;这里通过程序和注释的方式给大家讲解一下。编译的…

ai条码插件免安装_ai条码插件2款下载|Barcode Toolbox插件+Barcode条码插件下载 - 偶要下载站...

本次一次性打包两款ai条码插件和大家分享&#xff0c;分别是Barcode Toolbox插件和Barcode脚本插件&#xff0c;支持Illustrator CS5~CC2015的条形码脚本&#xff01;这两个插件不是一个插件&#xff0c;是有区别的两个插件。Barcode Toolbox是AI的一个非常有用的生成条码的插件…

GridView的DataKeyNames属性 转载的

偶今天用到这个了,转载 "事在人为"楼主的,原文地址: http://www.cnblogs.com/andhm/archive/2010/05/07/1730024.html DataKeyNames表示主键的列名&#xff0c;可以通过GridViewEntity.DataKeys[RowIndex]["ColumsName"]来获取他的值&#xff0c;当然它是…

反射 -- 通过字符串操作对象中的成员

getattr()setattr()hasattr()delattr()class C:def __init__(self, name):self.name namedef f(self):return Pythonobj C(Pyhton) get_name getattr(obj, name) get_func getattr(obj, f) get_func() hasattr(obj, name) setattr(obj, age, 10) delattr(obj, name)转载于:…

android默认exported_android:exported 属性详解

转自http://blog.csdn.net/watermusicyes/article/details/46460347昨天在用360扫描应用漏洞时&#xff0c;扫描结果&#xff0c;出来一个Android:exported属性&#xff0c;其实之前根本不知道这个属性&#xff0c;更不知道这个属性用来干嘛的&#xff0c;详情见下图&#xff1…

Chipset

Chipset 芯片组是一组集成电路&#xff08;芯片&#xff09;用于管理计算机处理器、内存和外设的数据流&#xff0c;通常位于主板上。 Northbridge (Memory Controller Hub) 北桥用来处理高速信号&#xff0c;负责CPU、RAM、AGP和PCI Express之间的通信。 Southbridge (I/O Con…

正确设置php-fpm和nginx防止网站被黑

2019独角兽企业重金招聘Python工程师标准>>> 核心总结&#xff1a;php-fpm 子进程所使用的用户&#xff0c;不能是网站文件所有者。 凡是违背这个原则&#xff0c;则不符合最小权限原则。 根据生产环境不断反馈&#xff0c;发现不断有 php网站被挂木马&#xff0c;绝…

一个数字键盘引发的血案——移动端H5输入框、光标、数字键盘全假套件实现...

https://juejin.im/post/5a44c5eef265da432d2868f6 为啥要写假键盘&#xff1f; 还是输入框、光标全假的假键盘&#xff1f; 手机自带的不用非得写个假的&#xff0c;吃饱没事干吧&#xff1f; 装逼&#xff1f;炫技&#xff1f; 宝宝也是被逼的&#xff0c;宝宝也很委屈~.~ …

姿态检测 树莓派_怎样在树莓派上轻松实现深度学习目标检测?

原标题&#xff1a;怎样在树莓派上轻松实现深度学习目标检测&#xff1f;雷锋网按&#xff1a;本文为 AI 研习社编译的技术博客&#xff0c;原标题 How to easily Detect Objects with Deep Learning on Raspberry Pi&#xff0c;作者为 Sarthak Jain。翻译 | 小哥哥 狒狒 校对…

Linux目录读写和可执行权限

一 . 进入目录权限如果我在普通用户下创建了一个目录f1&#xff0c;然后使用chomd u-rwx,g-rwx,o-rwx之后&#xff0c;我在普通用户下想进入f1目录&#xff0c;权限不允许。然后我切换到超级用户下&#xff0c;再次尝试进入到f1目录&#xff0c;这个时候允许进入。然后回到普通…

【译】表变量和临时表的比较(转)

关于表变量是什么&#xff08;和表变量不是什么&#xff09;&#xff0c;以及和临时表的比较让很多人非常困惑。虽然网上已经有了很多关于它们的文章&#xff0c;但我并没有发现一篇比较全面的。在本篇文章中&#xff0c;我们将探索表变量和临时表是什么&#xff08;以及不是什…

grub加密。

一、介绍 安全无小事 linux系统的安全分为很多方面&#xff0c;什么端口啊&#xff0c;什么网络啊&#xff0c;听着都特么烦&#xff0c;今天谈谈最简单明显的密码安全。 二、单用户模式 单用户模式个人觉得相当有用&#xff0c;可以用来修复系统&#xff0c;修改密码…… 但是…

Linux下stat + 文件名后, Access,Modify,Change的含义

我们首先在一个目录下创建了一个文件使用命令touch file然后输入命令&#xff1a;stat file&#xff0c;这个时候会输出一系列信息大家注意红色框中的三个时间Access : 文件最近一次被访问的时间Modify: 文件内容最近一次被修改的时间Change: 文件属性最近一次被改变的时间接着…

基于设计模式的学习之旅-----访问者模式(附源码)

基于设计模式的学习之旅-----访问者模式 1、初始访问者模式 2、什么是访问者模式 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 3、模式结构图 4、模式代码事例 场景&#xff1a;年会&#xff0c;每个小组表演…

x is y python_Python 基础

2.1 程序与用户交互在python3中#input&#xff1a;无论用输入何种类型&#xff0c;都会存成字符串类型nameinput(please input your name:) #name18print(id(name),type(name),name)在python2中#raw_input与python3的input是一样的nameraw_input(please input your name:)print…

【leetcode 简单】 第八十九题 赎金信

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串&#xff0c;判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成&#xff0c;返回 true &#xff1b;否则返回 false。 (题目说明&#xff1a;为了不暴露赎金信字迹&#xff0c;要从杂…

创建专属博客栏目

今天给大家get新技能了&#xff0c;是不是很期待捏我们一般看到的博客页面是这样的但是你是不是特别期待这样的捏其实技术上面也不是特别的 难&#xff0c;我们登录自己的csdn博客&#xff0c;然后选择“管理博客”&#xff0c;跳转页面之后选择“博客栏目”进入到这个页面之后…

《帝企鹅日记》观后感

第一次看到是在高中的英语周报上&#xff0c;那时候蛮好奇的&#xff0c;企鹅也写日记&#xff0c;呵呵&#xff0c;后来想了想应该是纪录片&#xff0c;时隔三年&#xff0c;发现当初的猜测果然不假。 我觉得那些企鹅很可爱&#xff0c;也很漂亮。最重要的是&#xff0c;那一条…

合并道路_资质改革已经确定!盘点被合并的资质!有这资质的要注意了

资质改革可以说是在行业里掀起了轩然大波&#xff0c;众多资质面临改革&#xff0c;有的资质被取消&#xff0c;有的资质被合并&#xff0c;有的资质继续保留。此文就带大家来盘点一下那些在近期资质定稿中被取消&#xff0c;被改变的资质&#xff1a;勘察资质勘察资质中&#…

如何为ccflow工作流引擎增加一个优先级PRI?

为什么80%的码农都做不了架构师&#xff1f;>>> 如何为ccflow工作流引擎增加一个优先级PRI&#xff1f; 对于一条流程的优先级可分为 低&#xff0c;中&#xff0c;高三个级别&#xff0c;用这个状态来标示这条流程的紧急程度。 以以前版本的ccflow中是以节点表…