JavaScript學習筆記(六)
-
- 一、jQuery是什麼?
- 二、jQuery的安裝
- 三、載入事件差別
- 四、jQuery對象和DOM對象的差別
-
-
- DOM對象和Jquery對象互轉
-
- 五、選擇器
-
- 5.1 jQuery的選擇器
-
- (1)基本選擇器
- (2)層級選擇器
- (3)篩選選擇器
- 滑鼠事件
- 六、元素對象
-
- 6.1 屬性的擷取和修改
-
- (1)屬性和元素内容的擷取
- (2)屬性和元素内容的修改
- (3)選中
- 6.2 樣式的擷取和修改
-
- (1)樣式的擷取和修改
- (2)class屬性的操作
- 6.3 坐标原點
-
- 6.4 元素的高度和寬度
- 七、DOM操作
-
- 7.1 節點的添加操作
- 7.2 節點的删除操作
- 八、事件
-
- 簡單示例:
- 重點:留言闆動态元素綁定事件
- 九. 案例
-
- 1.手風琴
- 2.淘寶精品(對應圖檔滾動)
- 3.頁籤
一、jQuery是什麼?
jQuery是将JavaScript的操作進行了封裝,對外提供了API,我們可以通過API,寫少量的代碼做更多的事情(Write Less Do More)。
jQuery是一個工具類(類似于Java的封裝類),jQuery不是庫(RectJS/VUE等等庫,庫提供的是相關元件)
jQuery版本:
- 1.X版本:能夠相容IE6、7、8浏覽器
- 2.X版本:不相容IE6、7、8浏覽器
- 3.X版本:不相容IE6、7、8浏覽器,代碼更加精簡
二、jQuery的安裝
通過讀取源碼,jquery檔案引入之後,匿名函數立即執行,并且給window對象添加一個屬性
if ( !noGlobal ) {
window.jQuery = window.$ = jQuery;
}
增加jQuery對象
<!-- JavaScript的外部引入JS檔案 -->
<!-- 外部引用JS,标簽之間不能再寫任何的JS代碼 -->
<script src="js/jquery-1.12.4.min.js"></script>
<script>
console.log(window.jQuery);
console.log(window.$);
</script>
三、載入事件差別
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload=function(){
console.log("window.onload","當整個頁面資源加載完畢之後立即執行");
}
</script>
</head>
<body>
<script>
window.onload=function(){
console.log("window.onload","如果存在多個window.onload隻會執行最後一個定義的");
}
</script>
<img src="images/1.jpg">
<!-- JavaScript的外部引入JS檔案 -->
<!-- 外部引用JS,标簽之間不能再寫任何的JS代碼 -->
<script src="js/jquery-1.12.4.min.js"></script>
<script>
window.onload=function(){
console.log("window.onload",Math.random());
}
$(document).ready(function(){
console.log("jquery載入事件","當DOM準備就緒時,指定一個函數來執行")
});
</script>
<script>0
$(function(){
console.log("jquery載入事件","存在簡寫方式")
console.log("jquery載入事件","定義多次可以重複執行")
});
</script>
</body>
</html>
- jquery有簡寫方式,window沒有
- jquery在DOM準備就緒時便執行,window在整個頁面資源加載完畢之後立即執行.jquery加載比window快
- jquery可以重複多次執行,window隻可執行一次,後者覆寫前者
四、jQuery對象和DOM對象的差別
- DOM對象:使用JavaScript中的方法擷取頁面中的元素傳回的對象就是
DOM對象
-
document.getElementById
-
document.getElementsByName
-
document.getElementsByTagName
-
document.getElementsByClassName
-
document.querySelector
-
document.querySelectorAll
- 使用JavaScript的DOM節點查找的擷取對象
- jQuery對象:使用jQuery工具類提供的方法擷取頁面中元素傳回的對象就是
,使用選擇器擷取元素jQuery對象
- jQuery對象其實就是對DOM對象的包裝集(
裝了DOM對象的集合)包
- DOM對象和jQuery對象的方法不能混用,但是兩者對象可以互相轉換
DOM對象和jQuery對象的方法不能混用
$(document).ready(function () {
console.log("1.DOM對象的擷取和操作")
let clothObj = document.getElementById("cloth");//DOM對象
clothObj.style.backgroundColor="deeppink";
console.log("2.jQuery對象,寫的少做的多");
let $li = $("li");//使用元素選擇器
$li.css("font-size","20px");//css方法是jquery提供
console.log("3.DOM對象,操作,代碼多了");
let liList = document.querySelectorAll("li");
for(let oLi of liList){
oLi.style.textAlign="center";
}
console.log("=============DOM對象和jQuery對象的方法不能混用=================");
//$li.style.color="blue";//Cannot set property 'color' of undefined
DOM對象和Jquery對象互轉
console.log("A.将DOM對象轉換為jQuery對象的寫法:$(DOM對象)=>jQuery對象");
$(clothObj).css("color","blue");
console.log("B.将jQuery對象轉換為DOM對象的寫法:jQuery其實就是包裝DOM集合");
$li[1].style.backgroundColor="green";//$li[1]得到DOM對象
$li.get(2).style.backgroundColor="yellow";//$li.get(2)得到DOM對象
五、選擇器
write less,do more在沒有jquery的時候,代碼量相對來說比較多!
隔行變色
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>我是第1個li</li>
<li>我是第2個li</li>
<li>我是第3個li</li>
<li>我是第4個li</li>
<li>我是第5個li</li>
<li>我是第6個li</li>
<li>我是第7個li</li>
<li>我是第8個li</li>
<li>我是第9個li</li>
<li>我是第10個li</li>
</ul>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function () {
let liList = $("li");//jQuery提供元素選擇器,擷取集合
for(let i=0;i<liList.length;i++){
//擷取DOM對象
var o = liList[i];
if(i%2==0){
o.style.backgroundColor="pink";
}else{
o.style.backgroundColor="while";
}
}
});
</script>
</body>
</html>
5.1 jQuery的選擇器
jQuery選擇器是jQuery為我們提供的一組方法,目的就是為了更好的擷取頁面中的元素。jQuery的選擇器有很多,但是基本上使用的都是相容CSS的選擇器,并且jQuery還提供了更加複雜的選擇器。
(1)基本選擇器
(2)層級選擇器
注意: +
尋找的兄弟元素隻找相鄰元素
(3)篩選選擇器
在選擇器的基礎上在進行篩選
- 上文隔行變色:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>我是第1個li</li>
<li>我是第2個li</li>
<li>我是第3個li</li>
<li>我是第4個li</li>
<li>我是第5個li</li>
<li>我是第6個li</li>
<li>我是第7個li</li>
<li>我是第8個li</li>
<li>我是第9個li</li>
<li>我是第10個li</li>
</ul>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
console.log("jQuery對象和DOM對象的方法不能混用,但是可以代碼可以混寫!");
$(document).ready(function () {
$("li:even").css("background","yellow");//改變偶數索引行,也就是第奇數行的元素
$("li:odd").css("background","green");//索引是奇數
});
</script>
</body>
</html>
- 表單操作
let arr = . m a k e A r r a y ( .makeArray( .makeArray(hobby);//将jquery對象轉換為數組
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="checkbox" name="hobby" value="111">籃球
<input type="checkbox" name="hobby" value="222" checked>足球
<input type="checkbox" name="hobby" value="333">乒乓
<input type="checkbox" name="hobby" value="444" checked>音樂
<input type="checkbox" name="hobby" value="555">小說
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
let $hobby = $("input[name='hobby']:checked");
let arr = $.makeArray($hobby);//将jquery對象轉換為數組
console.log(arr);
var newArray = $.map(arr,(element,index)=>element.value);//回調函數傳回新數組
console.log(newArray);
})
</script>
</body>
</html>
滑鼠事件
-
:滑鼠經過事件onmouseover
-
:滑鼠離開事件onmouseout
-
:滑鼠進入事onmouseenter
-
:滑鼠離開事件onmouseleave
<!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/0010.jpg);
}
.wrap li {
background-image: url(imgs/0007.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>
</head>
<body>
<div class="wrap">
<ul>
<li>
<a href="javascript:void(0);">玄幻</a>
<ul class="ul">
<li><a href="javascript:void(0);">大主宰</a></li>
<li><a href="javascript:void(0);">完美世界</a></li>
<li><a href="javascript:void(0);">寸芒</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0);">奇幻</a>
<ul>
<li><a href="javascript:void(0);">黎明醫生</a></li>
<li><a href="javascript:void(0);">詭秘之主</a></li>
<li><a href="javascript:void(0);">第一序列</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0);">曆史</a>
<ul>
<li><a href="javascript:void(0);">覆漢</a></li>
<li><a href="javascript:void(0);">紹宋</a></li>
<li><a href="javascript:void(0);">北頌</a></li>
</ul>
</li>
</ul>
</div>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$(function(){
//onmouseover:滑鼠經過事件
//onmouseout:滑鼠離開事件
//onmouseenter:滑鼠進入事件
//onmouseleave:滑鼠離開事件
let $li = $(".wrap>ul>li");
//$li設定滑鼠經過事件(進入事件),讓自己的ul顯示處理
$li.mouseenter(function(){
//console.log(this,"DOM對象");
//console.log($(this),"jQuery對象");
$(this).children("ul").show();
});
$li.mouseleave(function(){
//console.log(this,"DOM對象");
//console.log($(this),"jQuery對象");
$(this).children("ul").hide();
});
});
</script>
</body>
</html>
六、元素對象
我們通過jQuery提供的API文檔,可以擷取一組jQuery對象(就算是一個元素,也會被封裝到數組中),當我們擷取jQuery對象的時候,我們需要對其内部的屬性、元素内容、CSS樣式進行相關的操作示範
6.1 屬性的擷取和修改
(1)屬性和元素内容的擷取
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" name="age" id="age" value="199" love="自定義屬性:cute">
<p id="p1">
天樞<strong>星河</strong>
</p>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){/*當整個頁面中DOM元素加載完畢立即執行*/
console.log("1.擷取屬性對應的值");
console.log("A.擷取value屬性的值");
console.log($("#age").val(),$("#age")[0].value);
console.log("B.擷取其他屬性的值");
console.log($("#age").attr("type"),$("#age").attr("love"),$("#age").attr("value"));
console.log("2.擷取元素内容");
console.log("擷取文本内容",$("#p1").text());//innerText:轉義html
console.log("擷取元素内容",$("#p1").html());//innerHTML:解釋html
});
</script>
</body>
</html>
(2)屬性和元素内容的修改
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>屬性操作</title>
</head>
<body>
<input type="text" id="name" value="天樞">
<script src="lib/jquery-1.12.4.js"></script>
<script>
console.log("1.value屬性的擷取與指派");
console.log($("#name").val());
console.log($("#name").attr("value"));
console.log("2.value屬性的修改");
console.log("下面兩種修改方法一起出現時,val方法具有優先級")
//$("#name").val("星河");
$("#name").attr("value","銀河");
console.log("3.其他屬性");
console.log($("#name").attr("type"));
$("#name").attr("type","radio");
$("#name").attr("hobby","music");
$("#name").attr("love","cute");
console.log("4.設定選中");
//$("#name").attr("checked","true");
$("#name").prop("checked","true");//官方推薦寫法
</script>
</body>
</html>
(3)選中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" name="age" id="age" value="199" love="自定義屬性:">
<hr/>
<input type="checkbox" name="hobby" value="100">籃球
<input type="checkbox" name="hobby" value="200">足球
<input type="checkbox" name="hobby" value="300">排球
<input type="checkbox" name="hobby" value="400">網球
<input type="checkbox" name="hobby" value="500">看書
<hr/>
<select id="city">
<option value="">請選擇城市</option>
<option value="1001">吉林</option>
<option value="1002">遼甯</option>
<option value="1003">黑龍江</option>
</select>
<p id="p1">
www
天樞<strong>星河</strong>
</p>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
console.log("1.屬性的修改");
let $input = $("#age");
console.log("value屬性的修改")
$input.val(Number.parseInt($input.val())+1);//擷取和修改
console.log("其他屬性的修改");
$input.attr("type","number");
$input.attr("step",2);
$input.attr("love","cute");
console.log("2.1複選框的選中,設定第一個為選中狀态");
//$("input[type='checkbox']").first().attr("checked","checked");
$("input[type='checkbox']").first().prop("checked",true);
console.log("2.2有具體的資料使用數組設定選中");
let num = 300;
$("input[type='checkbox']").val([num]);
$("input[type='checkbox']").val([100,200,400]);
console.log("3.設定select預設選中");
num = 1002;
$("#city").val(num);
console.log("4.元素内容");
$("#p1").html($("#p1").html()+"<u>八戒</u>");
});
</script>
</body>
</html>
注意:attr和prop
- attr和prop差別
attr 是從頁面搜尋獲得元素值,是以頁面必須明确定義元素才能擷取值,相對來說較慢。
prop是從屬性對象中取值,屬性對象中有多少屬性,就能擷取多少值,不需要在頁面中顯示定義。
- attr和prop怎麼選擇?
對于HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。快速,準确。
對于HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。
6.2 樣式的擷取和修改
(1)樣式的擷取和修改
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#div1{
width: 200px;
background-color: deeppink;
border: 5px solid black;
}
</style>
</head>
<body>
<div id="div1" style="height: 100px;"></div>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
console.log("1.擷取樣式")
console.log($("#div1").css("height"));//内聯樣式
console.log($("#div1").css("width"));//非内聯樣式
console.log($("#div1").css("border-width"));
console.log("2.設定樣式");
$("#div1").html("天樞<strong>星河</strong>");
$("#div1").css("font-size","20px");
$("#div1 > strong").css({
"color":"#FFF",
"text-decoration":"underline"
});
</script>
</body>
</html>
(2)class屬性的操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.userName{
color: red;
}
.author{
font-size: 20px;
}
</style>
</head>
<body>
<ul>
<li>星河</li>
<li class="userName">星河</li>
<li>星河</li>
<li class="userName bookName">星河</li>
<li class="userName">星河</li>
<li>星河</li>
</ul>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
//$("ul li").removeClass("userName");//移除
//$("ul li").addClass("author");
//$("ul li.userName.bookName").addClass("author");//新增
$("ul li").toggleClass("userName");//切換 :原來有這個類屬性沒有了該屬性的效果,原來沒有這個類屬性的有了屬性效果
</script>
</body>
</html>
6.3 坐标原點
- offset:目前元素對象的原點是目前元素的左上角
- client:目前元素對象的原點是目前視窗的左上角
- page:目前元素對象的原點是目前頁面的左上角
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.mydiv{
width: 200px;
height: 200px;
background-color: deepskyblue;
position: absolute;
left: 100px;
top: 400px;
}
</style>
</head>
<body style="height: 2000px;">
<div class="mydiv"></div>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$(function(){/*當整個頁面中DOM元素加載完畢立即執行*/
$(".mydiv").click(function(event){
console.log(this,"DOM對象")
console.log("offsetX值",event.offsetX,"offsetY值",event.offsetY);
console.log("clientX值",event.clientX,"clientY值",event.clientY);
console.log("pageX值",event.pageX,"pageY值",event.pageY);
console.log("網頁被卷去的高:"+document.body.scrollTop,"垂直方向滾動的值:"+document.documentElement.scrollTop);
console.log("返復原動條的垂直位置"+$(window).scrollTop());//和$(document).scrollTop()效果相同,但window被所有浏覽器支援
console.log("擷取目前元素的坐标:");
let position = $(this).position();
console.log("目前元素的坐标",position.left,position.top);
});
});
</script>
</body>
</html>
6.4 元素的高度和寬度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.mydiv{
width: 200px;
height: 300px;
background-color: deepskyblue;
position: absolute;
left: 100px;
top: 400px;
border: 10px solid black;
padding: 20px;
}
</style>
</head>
<body style="height: 2000px;">
<div class="mydiv"></div>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$(function(){/*當整個頁面中DOM元素加載完畢立即執行*/
var mydiv = $(".mydiv");
console.log("元素的高度和寬度",mydiv.width(),mydiv.height(),"牢記這個");
console.log("pading+本身高度和寬度",mydiv.innerWidth(),mydiv.innerHeight());
console.log("pading+本身高度和寬度+border",mydiv.outerWidth(),mydiv.outerHeight());
});
</script>
</body>
</html>
七、DOM操作
7.1 節點的添加操作
<body>
<p id="p1">
天樞<strong>星河</strong>
</p>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
/*1.對子節點操作*/
console.log("A_建立節點")
let aElement01 = $("<a></a>").attr("href","http://www.4399.com/").attr("target","_blank").html("輕松一下");
let aElement02 = $("<a href='https://cn.bing.com' target='_blank'>必應</a>");
//console.log(aElement,"jQuery對象");
// console.log(aElement[0],"DOM對象");
console.log("追加到末尾")
$("#p1").append(aElement01);
$("#p1").append(" ");
//這種方式必須存在标簽節點,不能是文本節點
aElement02.appendTo("#p1");
console.log("追加到前面")
$("#p1").prepend("<u>銀河</u>")
$("<span>搖光</span>)").prependTo($("#p1"));
/*2.對兄弟節點操作*/
$("<del>兄弟節點</del>").insertBefore($("#p1"));
$("#p1").before("文本");
$("<del>兄弟節點:yyy</del>").insertAfter($("#p1"));
$("#p1").after("<span>kkk</span>");
</script>
</body>
7.2 節點的删除操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p id="p1">
天樞
<strong>星河</strong>
</p>
<p id="p2">
天樞
<strong>星河</strong>
</p>
<p class="userName">
天樞
<strong>星河</strong>
</p>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$("#p1").remove();//将元素删除
$("#p2").empty();//将元素内容清空
$("p").remove(".userName");
</script>
</body>
</html>
八、事件
在jquery1.7之後,jQuery統一了所有的事件的處理方式:
on
方法綁定事件
1.7之前:簡單事件綁定->bind事件綁定->delegate事件綁定->on事件綁定(個人推薦)
簡單示例:
<body>
<h3>正常的表單送出</h3>
<form action="http://www.baidu.com">
<button>自動送出按鈕-表單有送出事件</button>
</form>
<h3>阻止表單送出</h3>
<form action="http://www.baidu.com" onsubmit="return false;">
<button>自動送出按鈕-表單有送出事件</button>
</form>
<h3>簡單事件</h3>
<form action="http://www.baidu.com" id="myform01">
<button>自動送出按鈕-表單有送出事件</button>
</form>
<h3>ON綁定</h3>
<form action="http://www.baidu.com" id="myform02">
<button>自動送出按鈕-表單有送出事件</button>
</form>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
/**1.簡單事件的綁定*/
$("#myform01").submit(function(){
console.log("阻止送出事件");
return false;
});
$("#myform02").on("submit",function(){
let num = Math.trunc(Math.random()*5);
console.log(num);
if(num==3){
return true;//送出表單
}else{
return false;//阻止表單的自動送出
}
});
});
</script>
</body>
</html>
重點:留言闆動态元素綁定事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>留言闆</title>
</head>
<body>
<h3>留言闆</h3>
<input type="text" id="message" placeholder="請輸入留言" required autofocus><button id="send">留言</button>
<ul>
<li>星河<a href="javascript:;">删除</a> </li>
<li>搖光<a href="javascript:;">删除</a> </li>
</ul>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$("ul").on("click","li a",function (){//動态綁定:$(selector).on(event,childSelector,data,function,map)
//console.log(this,"DOM對象");
if (window.confirm("确定要删除此條留言嗎?")){
$(this).parent().remove();
}
})
$("#send").click(function (){
let message = $("#message").val();
let $li = $("<li></li>");
$li.append(message);
$("<a href='javascript:;'>新删除</a>").appendTo($li);
$("ul").prepend($li);
$("#message").focus();//擷取光标
$("#message").val("");//清空留言
});
$("#message").keyup(function (e){
if(e.which==13){
let message = $("#message").val();
let $li = $("<li></li>");
$li.append(message);
$("<a href='javascript:;'>新删除</a>").appendTo($li);
$("ul").prepend($li);
$("#message").focus();//擷取光标
$("#message").val("");//清空留言
}
})
</script>
</body>
</html>
九. 案例
1.手風琴
-
:取得比對元素的一個後面緊鄰的兄弟節點next()
-
:取得比對元素的所有兄弟節點siblings()
<!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;}/*ul前無标記*/
.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;/*div元素隐藏*/
}
</style>
</head>
<body>
<ul class="parentWrap">
<li class="menuGroup">
<span class="groupTitle">标題1</span>
<div>我是彈出來的div1</div>
</li>
<li class="menuGroup">
<span class="groupTitle">标題2</span>
<div>我是彈出來的div2</div>
</li>
<li class="menuGroup">
<span class="groupTitle">标題3</span>
<div>我是彈出來的div3</div>
</li>
<li class="menuGroup">
<span class="groupTitle">标題4</span>
<div>我是彈出來的div4</div>
</li>
</ul>
<script src="lib/jquery-1.12.4.min.js"></script>
<script>
$(function(){
//我們一點點處理
$(".groupTitle").on("click",function(){
//this轉換為jQuery對象
console.log($(this).next()[0])
//顯示目前的元素
$(this).next().show();
//隐藏目前元素的同級别節點的内容
$(this).parent().siblings().children("div").hide();
})
});
</script>
</body>
</html>
2.淘寶精品(對應圖檔滾動)
<!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>
</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>
<script src="../js/jquery-1.12.4.min.js"></script>
<script>
$(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();
});
});
</script>
</body>
</html>
3.頁籤
-
:active有顯示的作用<li active>
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.wrapper {
width: 1000px;
height: 475px;
margin: 0 auto;
margin-top: 100px;
}
.tab {
border: 1px solid #ddd;
border-bottom: 0;
height: 36px;
width: 320px;
}
.tab li {
position: relative;
float: left;
width: 80px;
height: 34px;
line-height: 34px;
text-align: center;
cursor: pointer;
border-top: 4px solid #fff;
}
.tab span {
position: absolute;
right: 0;
top: 10px;
background: #ddd;
width: 1px;
height: 14px;
overflow: hidden;
}
.products {
width: 1002px;
border: 1px solid #ddd;
height: 476px;
}
.products .main {
float: left;
display: none;
}
.products .main.selected {
display: block;
}
.tab li.active {
border-color: red;
border-bottom: 0;
}
</style>
</head>
<body>
<div class="wrapper">
<ul class="tab">
<li class="tab-item active">國際大牌<span>◆</span></li>
<li class="tab-item">國妝名牌<span>◆</span></li>
<li class="tab-item">清潔用品<span>◆</span></li>
<li class="tab-item">男士精品</li>
</ul>
<div class="products">
<div class="main selected">
<a href="###"><img src="../images/guojidapai.jpg" alt=""/></a>
</div>
<div class="main">
<a href="###"><img src="../images/guozhuangmingpin.jpg" alt=""/></a>
</div>
<div class="main">
<a href="###"><img src="../images/qingjieyongpin.jpg" alt=""/></a>
</div>
<div class="main">
<a href="###"><img src="../images/nanshijingpin.jpg" alt=""/></a>
</div>
</div>
</div>
<script src="../js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
$(".tab-item").mouseenter(function(){
$(this).addClass("active").siblings().removeClass("active");
let index = $(this).index();
$(".main").eq(index).addClass("selected").siblings().removeClass("selected");
});
});
</script>
</body>
</html>