console.dir
console.dir()可以显示一个对象所有的属性和方法。
jQuery对象和DOM对象
1.DOM对象:用原生js获取过来的对象
2.jQuery对象: 用jQuery方式获取过来的对象是jQuery对象。
本质:通过$把DOM元素进行了包装(伪数组形式存储)
3.jQuery对象只能使用jQuery方法,不能使用原生的方法和属性;DOM对象则使用原生的JavaScript的属性和方法
jQuery对象和DOM对象转化
$('div') 转化为jq对象
jQuery--》dom
// 第一种方法
$('div')[index] index是索引号
// 第二种方法
$('div').get(index) index是索引号
jQuery选择器
基础选择器
层级选择器
jq设置样式
$('div').css('属性','值')
隐式迭代
遍历内部DOM元素(伪数组形式存储)的过程就叫做 隐式迭代
筛选选择器
使用方法:
$(“ul li:first”).css(“color”,“blue”);
筛选方法(重点)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.5.1.js"></script>
<style>
</style>
</head>
<body>
<div class="ye">
<p class="ba1">我是爸爸</p>
<div class="ba2">
<p class="er">
儿子
</p>
</div>
</div>
<script>
$(function(){
console.log($(".ba1").parent());
console.log($(".er").parent());
$(".ye").children().css("color","yellow");
console.log($(".ye").children("div"));
})
</script>
</body>
</html>
下拉菜单(实战)
当鼠标移动到 显示
否则 不显示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.5.1.js"></script>
<style>
*{
/* 去掉 li 前面的点 */
list-style: none;
text-decoration: none;
}
.nav{
float: left;
margin-left: 100px;
}
a{
color: black;
}
.nav>li>ul{
display: none;
}
</style>
</head>
<body>
<!-- <div class="ye">
<p class="ba1">我是爸爸</p>
<div class="ba2">
<p class="er">
儿子
</p>
</div>
</div> -->
<ul class="nav">
<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>
<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>
</ul>
</li>
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="#">私信</a>
</li>
<li>
<a href="#">评论</a>
</li>
<li>
<a href="#">@我</a>
</li>
</ul>
</li>
</ul>
<script>
$(function(){
$(".nav>li").mouseover(function(){
//this表示当前元素
$(this).children("ul").show();
})
$(".nav>li").mouseout(function(){
$(this).children("ul").hide();
})
})
</script>
</body>
</html>
siblings(selector) 和eq(index)
<body>
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div>
4
</div>
<script>
$(function(){
$("ul li").eq(2).css("color","pink");
$("div").siblings("ul").css("background","red")
})
</script>
</body>
jQuery排他思想(点击一个按钮变色其他的不变)
<button >点我</button>
<button>点我</button>
<button>点我</button>
<button>点我</button>
<script>
$(function(){
$("button").click(function(){
//jq不能用原生的this 要用封装的$(this)!
$(this).css("background","red");
$(this).siblings("button").css("background","");
})
})
</script>
要注意 this和$(this)的区别 一个是原生js一个是jq封装的
淘宝服饰查看(实战)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>我是你爸爸A</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
font-size: 12px;
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
.wrapper {
width: 250px;
height: 248px;
margin: 100px auto 0;
border: 1px solid pink;
border-right: 0;
overflow: hidden;
}
#left,
#content {
float: left;
}
#left li {
background: url(img/lili.jpg) repeat-x;
}
#left li a {
display: block;
width: 48px;
height: 27px;
border-bottom: 1px solid pink;
line-height: 27px;
text-align: center;
color: black;
}
#left li a:hover {
background-color: red;
}
#content {
border-left: 1px solid pink;
border-right: 1px solid pink;
}
</style>
<script src="js/jquery-3.5.1.js"></script>
</head>
<body>
<div class="wrapper">
<ul id="left">
<li><a href="#">女靴</a></li>
<li><a href="#">雪地靴</a></li>
<li><a href="#">冬裙</a></li>
<li><a href="#">呢大衣</a></li>
<li><a href="#">毛衣</a></li>
<li><a href="#">棉服</a></li>
<li><a href="#">女裤</a></li>
<li><a href="#">羽绒服</a></li>
<li><a href="#">牛仔裤</a></li>
</ul>
<div id="content">
<div>
<a href="#"><img src="img/女靴.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/雪地靴.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/冬裙.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/呢大衣.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/毛衣.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/棉服.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/女裤.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/羽绒服.jpg" width="200" height="250" /></a>
</div>
<div>
<a href="#"><img src="img/牛仔裤.jpg" width="200" height="250" /></a>
</div>
</div>
</div>
<script>
$(function(){
$("#left li").mouseover(function(){
var index=$(this).index();
$("#content div").eq(index).show();
$("#content div").eq(index).siblings().hide();
})
})
// $(function() {
// // 1. 鼠标经过左侧的小li
// $("#left li").mouseover(function() {
// // 2. 得到当前小li 的索引号
// var index = $(this).index();
// console.log(index);
// // 3. 让我们右侧的盒子相应索引号的图片显示出来就好了
// // $("#content div").eq(index).show();
// // 4. 让其余的图片(就是其他的兄弟)隐藏起来
// // $("#content div").eq(index).siblings().hide();
// // 链式编程
// $("#content div").eq(index).show().siblings().hide();
// })
// })
</script>
</body>
</html>
移动鼠标到对应的栏,显示对应的照片
链式编程
自身变为红色 兄弟们变为无色
$(this).css("color","red").siblings().css("color","");
jQuery样式操作
css()方法
设置类样式方法(常用)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>123123</title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
div{
background-color: red;
width: 100px;
height: 100px;
transition: all 0.5s;
}
.box2{
background-color: yellow;
transform: rotate(360deg);
}
</style>
</head>
<body>
<div class="box1">
</div>
<script type="text/javascript">
$(function(){
//1.添加类
// $(".box1").click(function(){
// $(this).addClass("box2");
// })
// //2.移除类
// $(".box1").click(function(){
// $(this).removeClass("box2");
// })
//3.切换类
$("div").click(function(){
$(this).toggleClass("box2");
})
})
</script>
</body>
</html>
tab栏切换案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>123</title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
*{
list-style: none;
text-decoration: none;
}
.box{
width: 800px;
height: 500px;
margin: 0 auto;
}
.box ul{
display: inline-block;
background-color: rgb(241,239,241);
}
.box ul li{
float: left;
line-height: 40px;
text-align: center;
padding: 0 20px;
}
.foot div{
display: none;
}
.current{
background-color: #FF0000;
}
</style>
</head>
<body>
<div class="box">
<div class="head">
<ul>
<li>商品介绍</li>
<li>规格与包装</li>
<li>售后保障</li>
<li>商品评价(5000+)</li>
<li>手机社区</li>
</ul>
</div>
<div class="foot">
<div>
1111111111111
</div>
<div>
22222222222222
</div>
<div>
3333333333333
</div>
<div>
4444444444444
</div>
<div>
555555555555555
</div>
</div>
</div>
<script>
$(function(){
$(".head ul li").click(function()
{
$(this).addClass("current").siblings().removeClass("current");
var index=$(this).index();
$(".foot div").eq(index).show().siblings().hide();
})
})
</script>
</body>
</html>
在添加 class的同时 移除 兄弟的 class
jQuery效果
显示与隐藏
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="js/jquery-3.5.1.js"></script>
<title>test4</title>
</head>
<style type="text/css">
.box{
background-color: yellow;
width: 150px;
height: 100px;
}
</style>
<body>
<button>显示</button>
<button>隐藏</button>
<button>切换</button>
<div class="box"></div>
<script>
$(function(){
$("button").eq(0).click(function(){
$(".box").show("slow",function(){
alert("显示")
});
})
$("button").eq(1).click(function(){
$(".box").hide("slow");
})
$("button").eq(2).click(function(){
$(".box").toggle("slow");
})
})
</script>
</body>
</html>
滑动效果以及事件切换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
.box{
width: 160px;
height: 160px;
background-color: #FFC0CB;
display: none;
}
</style>
</head>
<body>
<button>上拉滑动</button>
<button>下拉滑动</button>
<button>滑动切换</button>
<div class="box">
</div>
<script>
$(function(){
$("button").eq(0).click(function(){
$(".box").slideDown();
})
$("button").eq(1).click(function(){
$(".box").slideUp();
})
$("button").eq(2).click(function(){
$(".box").slideToggle();
})
})
</script>
</body>
</html>
hover简化 微博下拉菜单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.5.1.js"></script>
<style>
*{
/* 去掉 li 前面的点 */
list-style: none;
text-decoration: none;
}
.nav>li{
float: left;
width: 100px;
}
a{
color: black;
}
.nav>li>ul{
display: none;
}
</style>
</head>
<body>
<ul class="nav">
<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>
<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>
</ul>
</li>
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="#">私信</a>
</li>
<li>
<a href="#">评论</a>
</li>
<li>
<a href="#">@我</a>
</li>
</ul>
</li>
</ul>
<script>
$(function(){
// $(".nav>li").mouseover(function(){
// //this表示当前元素
// $(this).children("ul").slideDown(200);
// })
// $(".nav>li").mouseout(function(){
// $(this).children("ul").slideUp(200);
// })
1.复合
// $(".nav>li").hover(function(){
// $(this).children("ul").slideDown(200);
// },function(){
// $(this).children("ul").slideUp(200);
// })
2.简单 但只有一个函数时,无论离开进入都会触发这个函数
$(".nav>li").hover(function(){
$(this).children("ul").slideToggle(200);
})
})
</script>
</body>
</html>
停止动画排队
多次触发 会依次进行动画。
注意 stop必须要在动画前加上
$(this).children("ul").stop().slideToggle(200);
jQuery 淡入淡出以及突出显示案例
// 淡入
fadeIn([speed,[easing],[fn]])
$("div").fadeIn();
// 淡出
fadeOut([speed,[easing],[fn]])
$("div").fadeOut;
// 淡入淡出切换
fadeToggle([speed,[easing],[fn]])
渐进方式调整到指定的不透明度
// 修改透明度 这个速度和透明度必须写
fadeTo(speed,opacity,[easing],[fn])
opacity :透明度必须写,取值 0~1 之间
speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。必须写
<button>淡入</button>
<button>淡出</button>
<button>切换</button>
<button>修改透明度</button>
<div class="box">
</div>
<script>
$(function(){
$("button").eq(0).click(function(){
$(".box").fadeIn(1000);
})
$("button").eq(1).click(function(){
$(".box").fadeOut(1000);
})
$("button").eq(2).click(function(){
$(".box").fadeToggle(1000);
})
$("button").eq(3).click(function(){
$(".box").fadeTo(1000,0.5);
})
})
</script>
高亮显示案例(实战)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>淡入淡出</title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
body {
background: #000;
}
.wrap {
margin: 100px auto 0;
width: 630px;
height: 394px;
padding: 10px 0 0 10px;
background: #000;
overflow: hidden;
border: 1px solid #fff;
}
.wrap li {
float: left;
margin: 0 10px 10px 0;
}
.wrap img {
border: 0;
}
</style>
</head>
<body>
<div class="wrap">
<ul>
<li>
<a href="#"><img src="img/01.jpg" alt="" /></a>
</li>
<li>
<a href="#"><img src="img/02.jpg" alt="" /></a>
</li>
<li>
<a href="#"><img src="img/03.jpg" alt="" /></a>
</li>
<li>
<a href="#"><img src="img/04.jpg" alt="" /></a>
</li>
<li>
<a href="#"><img src="img/05.jpg" alt="" /></a>
</li>
<li>
<a href="#"><img src="img/06.jpg" alt="" /></a>
</li>
</ul>
</div>
<script>
$(function() {
$("li").hover(function(){
$(this).siblings().stop().fadeTo(10,0.5);
},function(){
$(this).siblings().stop().fadeTo(10,1);
})
})
</script>
</html>
自定义动画animate
animate(params,[speed],[easing],[fn])
注意的定位
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>animate</title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
div{
width: 100px;
height: 100px;
background-color: #000000;;
position: absolute;
}
</style>
</head>
<body>
<button type="button">dianwo </button>
<div >
</div>
<script>
$(function(){
$("button").click(function(){
$("div").animate({
left:500,
top:300,
opcity:.8
},500)
})
})
</script>
</body>
</html>
注意参数
'left':'20px'
或者
left:20或者
'left':20
王者荣耀手风琴效果(实战)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.5.1.js"></script>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
img {
display: block;
}
ul {
list-style: none;
}
.king {
width: 852px;
margin: 100px auto;
background: url(images/bg.png) no-repeat;
overflow: hidden;
padding: 10px;
}
.king ul {
overflow: hidden;
}
.king li {
position: relative;
float: left;
width: 69px;
height: 69px;
}
.king li.current {
width: 224px;
}
.king li.current .big {
display: block;
}
.king li.current .small {
display: none;
}
.big {
width: 224px;
display: none;
}
.small {
position: absolute;
top: 0;
left: 0;
width: 69px;
height: 69px;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="king">
<ul>
<li class="current">
<a href="#">
<img src="images/m1.jpg" alt="" class="small">
<img src="images/m.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/l1.jpg" alt="" class="small">
<img src="images/l.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/c1.jpg" alt="" class="small">
<img src="images/c.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/w1.jpg" alt="" class="small">
<img src="images/w.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/z1.jpg" alt="" class="small">
<img src="images/z.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/h1.jpg" alt="" class="small">
<img src="images/h.png" alt="" class="big">
</a>
</li>
<li>
<a href="#">
<img src="images/t1.jpg" alt="" class="small">
<img src="images/t.png" alt="" class="big">
</a>
</li>
</ul>
</div>
<script>
$(function(){
//鼠标经过某个li 有两步操作
$(".king li").mouseenter(function(){
//1.当前的li宽度变为224px 同时里面的小图片淡出 大图片淡入
$(this).stop().animate({
'width':224,
}).find(".small").stop().fadeOut().siblings(".big").stop().fadeIn();
//2.其余兄弟小li宽度变为69px,小图片淡入,大图片淡出
$(this).siblings("li").stop().animate({
width:69
}).find(".small").stop().fadeIn().siblings(".big").stop().fadeOut();
})
})
</script>
</body>
</html>
注意find函数的使用 以及stop函数