簡(jiǎn)介
jQuery是一個(gè)輕量級(jí)且功能強(qiáng)大的JavaScript library。因?yàn)镴avaScript自身書寫的一些弊端,導(dǎo)致在用javascript寫網(wǎng)頁(yè)界面特效的過(guò)程中略顯復(fù)雜。大致缺點(diǎn)羅列如下:
- 查找元素的方法太少,麻煩。
- 遍歷偽數(shù)組很麻煩,通常要嵌套一大堆的for循環(huán)。
- 有兼容性問(wèn)題。
- 想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫效果,也很麻煩
- 代碼冗余。
而jQuery能夠避免這些問(wèn)題的發(fā)生,優(yōu)點(diǎn)羅列如下:
- 查找元素的方法多種多樣,非常靈活
- 擁有隱式迭代特性,因此不再需要手寫for循環(huán)了。
- 完全沒(méi)有兼容性問(wèn)題。
- 實(shí)現(xiàn)動(dòng)畫非常簡(jiǎn)單,而且功能更加的強(qiáng)大。
- 代碼簡(jiǎn)單、粗暴。
jQuery使用展示如下:
$(document).ready(function () {
$("#btn1").click(function () {
//隱式迭代:偷偷的遍歷,在jQuery中,不需要手動(dòng)寫for循環(huán)了,會(huì)自動(dòng)進(jìn)行遍歷。
$("div").show(200);
});
$("#btn2").click(function () {
$("div").text("我是內(nèi)容");
});
});
jQuery版本問(wèn)題
官網(wǎng)下載地址:http://jquery.com/download/ jQuery版本有很多,分為1.x 2.x 3.x
大致版本分類:
1.x版本:能夠兼容IE678瀏覽器
2.x版本:不兼容IE678瀏覽器
1.x和2.x版本jquery都不再更新版本了,現(xiàn)在只更新3.x版本。
3.x版本:不兼容IE678,更加的精簡(jiǎn)(在國(guó)內(nèi)不流行,因?yàn)閲?guó)內(nèi)使用jQuery的主要目的就是兼容IE678)
關(guān)于壓縮版和未壓縮版
jquery-1.12.4.min.js:壓縮版本,適用于生產(chǎn)環(huán)境,因?yàn)槲募容^小,去除了注釋、換行、空格等東西,但是基本沒(méi)有顆閱讀性。
jquery-1.12.4.js:未壓縮版本,適用于學(xué)習(xí)與開發(fā)環(huán)境,源碼清晰,易閱讀。
這里提供以下課程需要的jquery版本:https://pan.baidu.com/s/1JFs5qiEi0XfG0zCL3XBHOg 密碼:mi75
jQuery的入口函數(shù)
使用jQuery的三個(gè)步驟:
- 1.引入jQuery文件
- 2.入口函數(shù)
- 3.功能實(shí)現(xiàn)
jQuery入口函數(shù)的兩種寫法
//第一種寫法
$(document).ready(function() {
});
//第二種寫法
$(function() {
});
jQuery入口函數(shù)和js入口函數(shù)的對(duì)比
1.JavaScript的入口函數(shù)要等到頁(yè)面中所有資源(包括圖片、文件)加載完成才開始執(zhí)行。
2.jQuery的入口函數(shù)只會(huì)等待文檔樹加載完成就開始執(zhí)行,并不會(huì)等待圖片、文件的加載。
jQuery對(duì)象和Dom對(duì)象的區(qū)別(重點(diǎn))
1. DOM對(duì)象:使用JavaScript中的方法獲取頁(yè)面中的元素返回的對(duì)象就是dom對(duì)象。
2. jQuery對(duì)象:jquery對(duì)象就是使用jquery的方法獲取頁(yè)面中的元素返回的對(duì)象就是jQuery對(duì)象。
3. jQuery對(duì)象其實(shí)就是DOM對(duì)象的包裝集(包裝了DOM對(duì)象的集合(偽數(shù)組))
4. DOM對(duì)象與jQuery對(duì)象的方法不能混用。
Dom對(duì)象轉(zhuǎn)化成jQuery對(duì)象:【聯(lián)想記憶:花錢】
var $obj = $(domObj);
// $(document).ready(function(){});就是典型的DOM對(duì)象轉(zhuǎn)jQuery對(duì)象
jQuery對(duì)象轉(zhuǎn)換成Dom對(duì)象
var $li = $(“l(fā)i”);
//第一種方法(推薦使用)
$li[0]
//第二種方法
$li.get(0)
練習(xí):jQuery對(duì)象和Dom對(duì)象的區(qū)別
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li id="cloth">衣服</li>
<li>褲子</li>
<li>褲衩子</li>
<li>襪子</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$(function () {
//1. 什么是DOM對(duì)象(js對(duì)象):使用js的方式獲取到的元素就是js對(duì)象(DOM對(duì)象)
//var cloth = document.getElementById("cloth");
//cloth.style.backgroundColor = "pink";
//2. 什么是jq對(duì)象:使用jq的方式獲取到的元素就是jq對(duì)象
//var $li = $("li");
//console.log($li);
//$li.text("我改了內(nèi)容");
//3. jq對(duì)象與js對(duì)象的區(qū)別
//js對(duì)象對(duì)象不能調(diào)用jq對(duì)象的方法
//var cloth = document.getElementById("cloth");
//cloth.text("呵呵");
//4. jq對(duì)象與js對(duì)象的聯(lián)系(jq對(duì)象其實(shí)就是js對(duì)象的一個(gè)集合,偽數(shù)組,里面存放了一大堆的js對(duì)象)(宏觀上)
//jquery對(duì)象能不能調(diào)用DOM對(duì)象的方法
//var $li = $("li");
//$li[0].setAttribute("name","hehe");
//DOM無(wú)法調(diào)用jQuery對(duì)象的方法:為什么:因?yàn)槭莾蓚€(gè)不同對(duì)象
//DOM對(duì)象調(diào)用jQuery對(duì)象的方法。需要把DOM對(duì)象轉(zhuǎn)換成jQuery對(duì)象。
var cloth = document.getElementById("cloth");
//DOM對(duì)象就變成jQuery對(duì)象
//$(cloth).text("呵呵");
//jQuery對(duì)象怎么轉(zhuǎn)換成DOM對(duì)象(取出來(lái))
var $li = $("li");
$li[1].style.backgroundColor = "red";
$li.get(2).style.backgroundColor = "yellow";
//1. 什么是DOM對(duì)象:用js的方式獲取到的對(duì)象時(shí)DOM對(duì)象
//2. jQuery對(duì)象:用jq的方式獲取到的對(duì)象時(shí)jq對(duì)象
//3. 區(qū)別與聯(lián)系
//4. 區(qū)別:js對(duì)象與jq對(duì)象的方法不能混著用
//5. 聯(lián)系:
// DOM--> jQuery $()
// jQuery--》 DOM $li[0] $li.get(0)
});
</script>
</body>
</html>
隔行變色demo
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>我是第1個(gè)li</li>
<li>我是第2個(gè)li</li>
<li>我是第3個(gè)li</li>
<li>我是第4個(gè)li</li>
<li>我是第5個(gè)li</li>
<li>我是第6個(gè)li</li>
<li>我是第7個(gè)li</li>
<li>我是第8個(gè)li</li>
<li>我是第9個(gè)li</li>
<li>我是第10個(gè)li</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$(function () {
//就這么寫,會(huì)不會(huì)報(bào)錯(cuò),會(huì)不會(huì)有效果
var lis = $("li");
for (var i = 0; i < lis.length; i++) {
if (i % 2 == 0) {
// lis:jq對(duì)象
// lis[i]:DOM對(duì)象,通過(guò)下標(biāo)取出來(lái)了
lis[i].style.backgroundColor = "pink";
} else {
lis[i].style.backgroundColor = "hotpink";
}
}
});
</script>
</body>
</html>
選擇器
jQuery選擇器是jQuery為我們提供的一組方法,讓我們更加方便的獲取到頁(yè)面中的元素。注意:jQuery選擇器返回的是jQuery對(duì)象。
jQuery選擇器有很多,基本兼容了CSS1到CSS3所有的選擇器,并且jQuery還添加了很多更加復(fù)雜的選擇器?!静榭磈Query文檔】
jQuery選擇器雖然很多,但是選擇器之間可以相互替代,就是說(shuō)獲取一個(gè)元素,你會(huì)有很多種方法獲取到。所以我們平時(shí)真正能用到的只是少數(shù)的最常用的選擇器。
-
基本選擇器
image.png -
層級(jí)選擇器
image.png -
過(guò)濾選擇器
image.png -
篩選選擇器(方法)
image.png
下拉菜單案例:
圖片素材如下圖:
libg.jpg

<!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-image: url(imgs/bg.jpg);
}
.wrap li {
background-image: url(imgs/libg.jpg);
}
.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-1.12.4.js"></script>
<script>
$(function () {
//mouseover:鼠標(biāo)經(jīng)過(guò)事件
//mouseout:鼠標(biāo)離開事件
//mouseenter:鼠標(biāo)進(jìn)入事件
//mouseleave:鼠標(biāo)離開事件
var $li = $(".wrap>ul>li");
//給li注冊(cè)鼠標(biāo)經(jīng)過(guò)事件,讓自己的ul顯示出來(lái)
$li.mouseenter(function () {
//找到所有的兒子,并且還得是ul
$(this).children("ul").show();
});
$li.mouseleave(function () {
$(this).children("ul").hide();
});
});
</script>
</head>
<body>
<div class="wrap">
<ul>
<li>
<a href="javascript:void(0);">一級(jí)菜單1</a>
<ul class="ul">
<li><a href="javascript:void(0);">二級(jí)菜單11</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單12</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單13</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0);">一級(jí)菜單2</a>
<ul>
<li><a href="javascript:void(0);">二級(jí)菜單21</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單22</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單23</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0);">一級(jí)菜單3</a>
<ul>
<li><a href="javascript:void(0);">二級(jí)菜單31</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單32</a></li>
<li><a href="javascript:void(0);">二級(jí)菜單33</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
效果展示:

手風(fēng)琴案例
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {padding: 0;margin: 0;}
ul { list-style-type: none;}
.parentWrap {
width: 200px;
text-align:center;
}
.menuGroup {
border:1px solid #999;
background-color:#e0ecff;
}
.groupTitle {
display:block;
height:20px;
line-height:20px;
font-size: 16px;
border-bottom:1px solid #ccc;
cursor:pointer;
}
.menuGroup > div {
height: 200px;
background-color:#fff;
display:none;
}
</style>
<script src="jquery-1.12.4.js"></script>
<script>
$(function () {
//思路分析:
//1. 給所有的span注冊(cè)點(diǎn)擊事件,讓當(dāng)前span的兄弟div顯示出來(lái)
$(".groupTitle").click(function () {
//下一個(gè)兄弟:nextElementSibling
//鏈?zhǔn)骄幊蹋涸趈Query里面,方法可以一直調(diào)用下去。
$(this).next().slideDown(200).parent().siblings().children("div").slideUp(200);
});
});
</script>
</head>
<body>
<ul class="parentWrap">
<li class="menuGroup">
<span class="groupTitle">標(biāo)題1</span>
<div>我是彈出來(lái)的div1</div>
</li>
<li class="menuGroup">
<span class="groupTitle">標(biāo)題2</span>
<div>我是彈出來(lái)的div2</div>
</li>
<li class="menuGroup">
<span class="groupTitle">標(biāo)題3</span>
<div>我是彈出來(lái)的div3</div>
</li>
<li class="menuGroup">
<span class="groupTitle">標(biāo)題4</span>
<div>我是彈出來(lái)的div4</div>
</li>
</ul>
</body>
</html>
效果展示:

突出展示案例
圖片素材:






<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<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 {
display: block;
border: 0;
}
</style>
<script src="../jquery-1.12.4.js"></script>
<script>
$(function () {
$(".wrap>ul>li").mouseenter(function () {
$(this).css("opacity", "1").siblings().css("opacity", "0.4");
});
$(".wrap").mouseleave(function () {
//讓所有的li都變亮
//$("li");
//$(".wrap li");
//$(".wrap>ul>li")
//$(this).children().children("li");
$(this).find('li').css("opacity", 1);
});
});
</script>
</head>
<body>
<div class="wrap">
<ul>
<li><a href="#"><img src="images/01.jpg" alt=""/></a></li>
<li><a href="#"><img src="images/02.jpg" alt=""/></a></li>
<li><a href="#"><img src="images/03.jpg" alt=""/></a></li>
<li><a href="#"><img src="images/04.jpg" alt=""/></a></li>
<li><a href="#"><img src="images/05.jpg" alt=""/></a></li>
<li><a href="#"><img src="images/06.jpg" alt=""/></a></li>
</ul>
</div>
</body>
</html>
效果展示:

淘寶精品案例
素材:





















<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
font-size: 12px;
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
.wrapper {
width: 298px;
height: 248px;
margin: 100px auto 0;
border: 1px solid pink;
overflow: hidden;
}
#left, #center, #right {
float: left;
}
#left li, #right li {
background: url(images/lili.jpg) repeat-x;
}
#left li a, #right 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, #right li a:hover {
background-image: url(images/abg.gif);
}
#center {
border-left: 1px solid pink;
border-right: 1px solid pink;
}
</style>
<script src="../jquery-1.12.4.js"></script>
<script>
$(function () {
//找不到對(duì)象
$(function () {
$("#left>li").mouseenter(function () {
$("#center>li:eq(" + $(this).index() + ")").show().siblings().hide();
});
$("#right>li").mouseenter(function () {
$("#center>li").eq($(this).index() + 9).show().siblings().hide();
});
})
});
// $("#left>li").mouseenter(function () {
// //讓center中對(duì)應(yīng)下標(biāo)的li顯示,其他li隱藏
// var idx = $(this).index();
// $("#center>li:eq(" + idx + ")").show().siblings().hide();
// });
//
// $("#right>li").mouseenter(function () {
// var idx = $(this).index() + 9;
// $("#center>li").eq(idx).show().siblings().hide();
//
// //$("#center>li").eq(idx) :jq對(duì)象
// //$("#center>li").get(idx);:js對(duì)象
// });
// });
</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>
<ul id="center">
<li><a href="#"><img src="images/女靴.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/雪地靴.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/冬裙.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/呢大衣.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/毛衣.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/棉服.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/女褲.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/羽絨服.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/牛仔褲.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/女包.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/男靴.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/登山鞋.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/皮帶.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/圍巾.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/皮衣.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/男毛衣.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/男棉服.jpg" width="200" height="250"/></a></li>
<li><a href="#"><img src="images/男包.jpg" width="200" height="250"/></a></li>
</ul>
<ul id="right">
<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>
</body>
</html>
效果展示:

京東輪播案例
圖片素材








代碼:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>京東商城</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
.slider {
height: 340px;
width: 790px;
margin: 100px auto;
position: relative;
}
.slider li {
position: absolute;
display: none;
}
.slider li:first-child {
display: block;
}
.arrow {
display: none;
}
.slider:hover .arrow {
display: block;
}
.arrow-left,
.arrow-right {
font-family: "SimSun", "宋體";
width: 30px;
height: 60px;
background-color: rgba(0, 0, 0, 0.1);
position: absolute;
top: 50%;
margin-top: -30px;
cursor: pointer;
text-align: center;
line-height: 60px;
color: #fff;
font-weight: 700;
font-size: 30px;
}
.arrow-left:hover,
.arrow-right:hover {
background-color: rgba(0, 0, 0, .5);
}
.arrow-left {
left: 0;
}
.arrow-right {
right: 0;
}
</style>
</head>
<body>
<div class="slider">
<ul>
<li><a href="#"><img src="images/1.jpg" alt=""></a></li>
<li><a href="#"><img src="images/2.jpg" alt=""></a></li>
<li><a href="#"><img src="images/3.jpg" alt=""></a></li>
<li><a href="#"><img src="images/4.jpg" alt=""></a></li>
<li><a href="#"><img src="images/5.jpg" alt=""></a></li>
<li><a href="#"><img src="images/6.jpg" alt=""></a></li>
<li><a href="#"><img src="images/7.jpg" alt=""></a></li>
<li><a href="#"><img src="images/8.jpg" alt=""></a></li>
</ul>
<!--箭頭-->
<div class="arrow">
<span class="arrow-left"><</span>
<span class="arrow-right">></span>
</div>
</div>
<script src="jquery-1.12.4.js"></script>
<script>
$(function () {
var $li = $(".slider>ul>li");
var count = 0;
$(".arrow-right").click(function () {
count++;
if(count == $li.length){
count = 0;
}
$li.eq(count).fadeIn(1000).siblings().fadeOut(1000);
});
$(".arrow-left").click(function () {
count--;
if(count == -1){
count = $li.length - 1;
}
$li.eq(count).fadeIn(1000).siblings().fadeOut(1000);
});
});
</script>
</body>
</html>
效果展示:

歡迎關(guān)注我的個(gè)人微信公眾號(hào),免費(fèi)送計(jì)算機(jī)各種最新視頻資源!你想象不到的精彩!





