一、.hover方法
描述:将二个事件函数绑定到匹配元素上,分别当鼠标指针进入和离开元素时被执行。
.hover()
方法是同时绑定 mouseenter
和 mouseleave
事件。我们可以用它来简单地应用在 鼠标在元素上行为。
调用$(selector).hover(handlerIn, handlerOut)
是以下写法的简写:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
下面示例为模拟鼠标悬停
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div{
width:200px;
height: 200px;
border: 1px solid red;
}
.over{
background-color: yellow;
border: 5px dashed green;
color: blue;
}
.out{
background-color: red;
border: 5px solid yellow;
color: pink;
}
</style>
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<div>这是个有故事的div</div>
</body>
</html>
<script>
$('div').hover(function(){
this.className = 'over';
},function(){
this.className = 'out';
})
</script>
二、动画方法
jQuery中的动画效果都可以指定3种速度参数”slow”、”normal”、”fast”,甚至以毫秒为单位进行添加动画效果。
1.show()显示元素与hide()隐藏元素。
示例:点击标签,显示和隐藏div
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>显示与隐藏</title>
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<h3>点我咯</h3>
<div>这是个有故事的div</div>
</body>
</html>
<script>
var flag = true
$('h3').bind('click',function(){
if(flag){
$(this).next().hide();
}else{
$('div').show();
}
flag = !flag;
})
</script>
2.fadeIn()与fadeOut()淡入淡出方法(颜色变淡最后消失)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src='jquery-3.1.1.js'></script>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head>
<body>
<h3 style="width: 100px;background-color: red">点我看看咯</h3>
<div>这是个有故事的div</div>
</body>
</html>
<script>
var flag = true;
$('h3').click(function(){
if(flag){
$(this).next().fadeOut(5000);
}else{
$('div').fadeIn(5000);
};
flag = !flag;
})
</script>
3.slideUp()和slideDown()滑动方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>滑动动画显示</title>
<link rel="stylesheet" href="donghua.css">
<script src="jquery-3.1.1.js"></script>
</head>
<body>
<h3>点我咯</h3>
<div>梅刚是傻逼</div>
</body>
</html>
<script>
var flag = true;
$('h3').click(function(){
if(flag){
$(this).next().slideUp(3000);
}else{
$('div').slideDown(3000);
}
flag = !flag
})
</script>
Css样式
*{
margin: 0;
padding:0;
}
div{
background-color: red;
width: 200px;
height: 200px;
position: relative;
}
h3{
background-color: green;
width: 200px;
}
4.animate(params,[speed],[callback])自定义动画方法
参数说明:
params:一个包含样式属性及值的映射
speed:速度参数,可选
callback:动画完成时执行的函数,可选
注意:使用animate()方法之前,必须将元素的position样式改为”relative”或”absolute”
animate()方法可以实现
自定义简单动画
累加、累减动画(通过”+=”或”-=”设置位置)
(按顺序执行)多重动画
利用动画回调函数实现动画完成时的设置
判断元素是否处于动画状态
if(!$(element).is(“:animated”)){
// 如果当前没有进行动画,执行的代码
}
示例1:点击div,div向右下方移动,并变大,停止后,返回原位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义动画效果</title>
<script src='jquery-3.1.1.js'></script>
<link rel="stylesheet" href="donghua.css">
</head>
<body>
<div></div>
</body>
</html>
<script>
$('div').click(function(){
$(this).animate({
width:'500px',
height:'500px',
left:'300px',
top:'300px',
},5000,function(){
$(this).animate({
width:'100px',
height:'100',
left:0,
top:0
})
})
})
</script>
示例2:点击开始按钮,div向右移动,开始按钮变为暂停,点击移动中的div停止一定,按钮变为开始。(自定义动画累加累减效果实现)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
<title>Document</title>
</head>
<body>
<div></div>
<input type="button" value="开始" id="btn">
</body>
</html>
<script>
$(function(){
$('#btn').click(function(){
var $div = $('div');
if($div.is(":animated")){
$div.stop();
this.value = '开始';
}else{
$('div').animate({left:'+=200px'},3000);
this.value = '暂停';
}
})
})
</script>
5、toggle()方法
切换元素的可见状态。如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素。
show()与hide()方法的简写形式
示例:点击标签,div显示或隐藏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<h3>点我</h3>
<div>这是个有故事的div</div>
</body>
</html>
<script>
$('h3').click(function(){
$(this).next().toggle(3000); //切换元素的可变状态
})
</script>
6、slideToggle()方法
slideUp和slideDown简写
slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。
如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。
$(selector).toggle(speed,callback,switch)
speed 可选,规定元素从可见到隐藏的速度,默认0
在设置速度的情况下,元素从可见到隐藏的过程中,会逐渐地改变其高度、宽度、外边距、内边距和透明度。如果设置此参数,则无法使用 switch 参数。
callback 可选。toggle 函数执行完之后,要执行的函数。
switch 可选,布尔值。规定 toggle 是否隐藏或显示所有被选元素。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<h3>点我</h3>
<div>这是一个有故事的div</div>
</body>
</html>
<script>
$('h3').click(function(){
$('div').slideToggle(3000); //切换元素可见状态
})
</script>
7. fadeTo()方法
fadeTo() 方法将被选元素的不透明度逐渐地改变为指定的值。
语法:
$(selector).fadeTo(speed,opacity,callback)
speed 可选。规定元素从当前透明度到指定透明度的速度。
opacity 必需。规定要淡入或淡出的透明度。必须是介于 0.00 与 1.00 之间的数字。
callback 可选。fadeTo 函数执行完之后,要执行的函数。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<h3>点我</h3>
<div>这是一个有故事的div</div>
</body>
</html>
<script>
$('h3').bind('click',function(){
$(this).next().fadeTo(3000,0.3,function(){
$(this).css('border','3px dashed green');
})
})
</script>
8、fadeToggle()方法
fadeToggle() 方法在fadeIn() 和fadeOut()方法之间切换。
如果元素是淡出显示的,fadeToggle() 会使用淡入效果显示它们。
如果元素是淡入显示的,fadeToggle() 会使用淡出效果显示它们。
注释:隐藏的元素不会被完全显示(不再影响页面的布局)。
语法:
$(selector).fadeToggle(speed,easing,callback)
speed 可选。规定褪色效果的速度
easing 可选。规定在动画的不同点上元素的速度。默认值为 "swing"。(可选"linear" - 匀速移动,"swing" - 在开头/结尾移动慢,在中间移动快)
callvack 可选,fadeToggle() 方法执行完之后,要执行的函数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="donghua.css">
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<h3>点我</h3>
<div>这是一个有故事的div</div>
</body>
</html>
<script>
$('h3').click(function(){
$(this).next().fadeToggle();
})
</script>
二级菜单联动效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二级菜单效果</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style-type: none;
}
div{
width: 20%;
background-color: green;
position: relative;
}
.submenu{
display: none;
}
ul h3{
border: 1px solid red;
}
</style>
<script src='jquery-3.1.1.js'></script>
</head>
<body>
<div>
<ul>
<li>
<h3>美食</h3>
<ul class="submenu">
<li>地锅鸡</li>
<li>皮肚面</li>
<li>馒头</li>
</ul>
</li>
<li>
<h3>读书</h3>
<ul class="submenu">
<li>当代青年</li>
<li>皮囊</li>
<li>海子的诗</li>
</ul>
</li>
<li>
<h3>娱乐</h3>
<ul class="submenu">
<li>明星出轨</li>
<li>最新电影</li>
<li>杨幂离婚</li>
</ul>
</li>
</ul>
</div>
<input type="button" value="隐藏" id="btn">
</body>
</html>
<script>
$('h3').hover(function(){
$(this).css('background-color','red')
$(this).next().show(2000);
},function(){
$(this).css('background-color','yellow')
$(this).next().hide(2000);
});
var flag = true;
var div_width = $('div').css('width');//获取div的宽度
$('#btn').click(function(){
if(flag){
//$('div').css('left','-'+div_width);
$('div').animate({left:'-'+div_width},3000);
this.value = '显示';
}else{
$('div').animate({left:0},3000);
this.value = '隐藏'
}
flag = !flag;
});
</script>