目录
  1. 1. 淡入淡出
    1. 1.1. fadeIn
      1. 1.1.1. 参数
      2. 1.1.2. 示例代码
    2. 1.2. fadeOut
      1. 1.2.1. 参数
      2. 1.2.2. 示例代码
    3. 1.3. fadeToggle
      1. 1.3.1. 参数
      2. 1.3.2. 示例代码
  2. 2. 滑动
    1. 2.1. slideDown
      1. 2.1.1. 参数
      2. 2.1.2. 示例代码
    2. 2.2. slideUp
      1. 2.2.1. 参数
      2. 2.2.2. 示例代码
    3. 2.3. slideToggle
      1. 2.3.1. 参数
      2. 2.3.2. 示例代码
  3. 3. 显示与隐藏
    1. 3.1. show
      1. 3.1.1. 参数
      2. 3.1.2. 示例代码
    2. 3.2. hide
      1. 3.2.1. 参数
      2. 3.2.2. 示例代码
    3. 3.3. toggle
      1. 3.3.1. 参数
      2. 3.3.2. 示例代码
  4. 4. 自定义动画
    1. 4.1. 参数
    2. 4.2. 示例代码
  5. 5. 案例练习
    1. 5.1. 动画实现动态导航栏
让你更快掌握JQ的动画

淡入淡出

淡入淡出: 不断改变元素的透明度(opacity)来实现的

  1. fadeIn(): 带动画的显示
  2. fadeOut(): 带动画隐藏
  3. fadeToggle(): 带动画切换显示/隐藏

fadeIn

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing::(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')
$('#btn1').click(function () {
$div1.fadeOut(1000, function ()
alert('动画完成了!!!')
})
})

fadeOut

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”

  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')
$('#btn2').click(function () {
$div1.fadeIn()
})

fadeToggle

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”

  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')
$('#btn3').click(function () {
$div1.fadeToggle()
})

滑动

滑动动画: 不断改变元素的高度实现

  1. slideDown(): 带动画的展开
  2. slideUp(): 带动画的收缩
  3. slideToggle(): 带动画的切换展开/收缩

slideDown

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')

// 1. 点击btn1, 向上滑动
$('#btn1').click(function () {
$div1.slideUp(2000)
})

slideUp

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')

// 2. 点击btn2, 向下滑动
$('#btn2').click(function () {
$div1.slideDown()
})

slideToggle

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')

$('#btn3').click(function () {
$div1.slideToggle()
})

显示与隐藏

显示隐藏,默认没有动画, 动画(opacity/height/width)

  1. show(): (不)带动画的显示
  2. hide(): (不)带动画的隐藏
  3. toggle(): (不)带动画的切换显示/隐藏

show

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

立即显示缓慢显示

var $div1 = $('.div1')
//1. 点击btn1, 立即显示
$('#btn1').click(function () {
$div1.show()
})

//2. 点击btn2, 慢慢显示
$('#btn2').click(function () {
$div1.show(1000)
})

hide

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

var $div1 = $('.div1')
$('#btn3').click(function () {
$div1.hide(1000)
})

toggle

参数

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
  • easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”
  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

立即显示缓慢显示

var $div1 = $('.div1')
$('#btn4').click(function () {
$div1.toggle(1000)
})

自定义动画

jQuery动画本质 : 在指定时间内不断改变元素样式值来实现的

  1. animate(): 自定义动画效果的动画
  2. stop(): 停止动画

参数

  • params:一组包含作为动画属性和终值的样式属性和及其值的集合

  • speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

  • easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供”linear” 和 “swing”.

  • fn:在动画完成时执行的函数,每个元素执行一次。

示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自定义动画</title>
<style type="text/css">
* {
margin: 0px;
}

.div1 {
position: absolute;
width: 100px;
height: 100px;
top: 50px;
left: 300px;
background: red;
}
</style>
</head>
<body>
<button id="btn1">逐渐扩大</button>
<button id="btn2">移动到指定位置</button>
<button id="btn3">移动指定距离</button>
<button id="btn4">停止动画</button>

<div class="div1">
沉默不是代表我的错,我也没有错
</div>


<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">

var $div1 = $('.div1')

/*
1. 逐渐扩大
宽先扩为200px, 高后扩为200px
*/
$('#btn1').click(function () {

$div1
.animate({
width: 200
}, 1000)
.animate({
height: 200
}, 1000)

})

/*
2. 移动到指定位置
移动到(100, 20)处
*/
$('#btn2').click(function () {

// 移动到(100, 20)处
$div1.animate({ // 向左上移动
left: 100, // 300
top: 20 // 50
}, 1000)
})

/*
3.移动指定的距离
移动距离为(-100, -20)
*/
$('#btn3').click(function () {

// 移动距离为(-100, -20)
$div1.animate({
left: '-=100',
top: '-=20'
}, 3000)
})

$('#btn4').click(function () {
$div1.stop()
})

</script>
</body>
</html>

案例练习

动画实现动态导航栏

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>导航动态显示效果</title>
<style rel="stylesheet">
* {
margin: 0;
padding: 0;
word-wrap: break-word;
word-break: break-all;
}

body {
background: #FFF;
color: #333;
font: 12px/1.6em Helvetica, Arial, sans-serif;
}

a {
color: #0287CA;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

ul, li {
list-style: none;
}

img {
border: none;
}

h1, h2, h3, h4, h5, h6 {
font-size: 1em;
}

html {
overflow: -moz-scrollbars-vertical; /* 在Firefox下始终显示滚动条*/
}

#navigation {
width: 784px;
padding: 8px;
margin: 8px auto;
background: #3B5998;
height: 18px;
}

#navigation ul li {
float: left;
margin-right: 14px;
position: relative;
z-index: 100;
}

#navigation ul li a {
display: block;
padding: 0 8px;
background: #EEEEEE;
font-weight: 700;
}

#navigation ul li a:hover {
background: none;
color: #fff;
}

#navigation ul li ul {
background-color: #88C366;
position: absolute;
width: 80px;
overflow: hidden;
display: none;
}

#navigation ul li ul li {
border-bottom: 1px solid #BBB;
text-align: left;
width: 100%;
}
</style>
</head>
<body>
<div id="navigation">
<ul>
<li><a href="#">首 页</a></li>
<li><a href="#">衬 衫</a>
<ul>
<li><a href="#">短袖衬衫</a></li>
<li><a href="#">长袖衬衫</a></li>
<li><a href="#">无袖衬衫</a></li>
</ul>
</li>
<li><a href="#">卫 衣</a>
<ul>
<li><a href="#">开襟卫衣</a></li>
<li><a href="#">套头卫衣</a></li>
</ul>
</li>
<li>
<a href="#">裤 子</a>
<ul>
<li><a href="#">休闲裤</a></li>
<li><a href="#">卡其裤</a></li>
<li><a href="#">牛仔裤</a></li>
<li><a href="#">短裤</a></li>
</ul>
</li>
<li><a href="#">联系我们</a></li>
</ul>
</div>

<script type="text/javascript" src="jquery-1.10.1.js"></script>
<script type="text/javascript">
$('#navigation>ul>li:has(ul)').hover(function () {
//动画展开
$(this).children('ul').stop(true).slideDown()
}, function () {
// 动画收缩
$(this).children('ul').stop(true).slideUp()
})
</script>
</body>
</html>

文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-05/25/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/JQ/%E8%AE%A9%E4%BD%A0%E6%9B%B4%E5%BF%AB%E6%8E%8C%E6%8F%A1JQ%E7%9A%84%E5%8A%A8%E7%94%BB/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论