jQ入口函數
JQ的入口函數
$(function(){
})
/*$(function(){
// 頁面加載完畢後執行
alert("頁面加載完畢了1輸出")
})
$(function () {
alert("頁面加載完畢了2輸出")
})*/
jq對象js對象互相轉換
js對象轉換成JQ對象
$(js對象)
JQ對象轉換成js對象
* JQ對象.get(index)
* JQ對象[index]
jQ支援的選擇器
JQ找到頁面元素的方式就是通過選擇器的方式
$("選擇器")
如果選擇器關聯的是單個元素 那麼操作單個元素
如果是很多元素 那麼就是很多元素一起操作
// $(".pox").html("我是新改的文字").css("color","#e4393c");
JQ中除了支援選擇器找到頁面元素之外
還支援一定的 過濾器配合使用找到頁面元素
過濾器是寫在 $("選擇器:過濾器") 裡面的
:eq(index) 表示從JQ已經選擇到的衆多元素中 找到其中指定索引的那個元素
:even 從JQ已經選擇的衆多元素中 選中偶數部分的元素
:odd ....... 奇數部分
:first ........ 選中第一個
:last ........ 選中最後一個
:not('選擇器') 從已經選擇的元素中 排除指定選擇器所選中的那個元素
:gt(index) 從已經選中的一堆元素中 找到比gt裡面索引值比index大的那些元素
:lt(index) 跟上面相反
// $("li:eq(7)").css("font-size","60px");
// js原生實作隔行變色
/*var liArr=document.querySelectorAll("ul.pox>li");
for(var i=0;i<liArr.length;i++){
if(i%2==0){
liArr[i].style.backgroundColor="orange";
}else{
liArr[i].style.backgroundColor="hotpink";
}
}*/
// JQ的過濾器實作
/*$("ul.pox>li:even").css("backgroundColor","orange")
$("ul.pox>li:odd").css("backgroundColor","hotpink")*/
/* $("ul.pox>li:first").css("fontSize","60px");
$("ul.pox>li:last").css("fontSize","10px");*/
// $("ul.pox>li:not('.demo')").css("backgroundColor","orange");
$("ul.pox>li:gt(2)").css("color","orange");
$("ul.pox>li:lt(2)").css("color","hotpink");
篩選器就是各種方法,對應的就是原生JS的節點通路關系:
找到父元素 子元素 所有子元素 第一個子元素 兄弟元素 等等....
篩選器就是各種方法,對應的就是原生JS的節點通路關系: 找到父元素 子元素 所有子元素 第一個子元素 兄弟元素 等等....
篩選器就是各種方法,對應的就是原生JS的節點通路關系:
找到父元素 子元素 所有子元素 第一個子元素 兄弟元素 等等....
find("選擇器") 選擇器的參數是必填的 表示找到後代指定選擇器的那些元素
children("選擇器") 參數可選 如果沒有參數表示 傳回所有的子元素
如果傳入選擇器 則表示傳回子元素中 複合選擇器的那些子元素
siblings("選擇器") 參數可選 如果沒有參數表示傳回所有兄弟元素
有參數 表示傳回所有兄弟中符合選擇器的指定兄弟元素
parent() 找到父元素 父元素因為是唯一 所有不用傳選擇器
$("選擇器:eq(index)") 過濾器
.eq(index) 跟上面的那個過濾器的用法一模一樣 作用也一樣
next() 下一個兄弟
prev() 上一個兄弟
prevAll() 之前所有兄弟
nextAll() 之後所有兄弟
$("#box").find("div") //找到#box後代所有的div
// console.log($("#box").find("div"));
// console.log($("#box").children());//所有子元素
// console.log($("#box").children("div")); //找到兩個div
// console.log($("#box>ul").siblings());
// console.log($("#box>ul").parent());
// console.log($("li").eq(3));
/* console.log($("li.demo").next().css("font-size","30px"));
console.log($("li.demo").prev().css("font-size","30px"));*/

JQ的 css方法 既可以設定樣式又可以擷取樣式
擷取樣式:
JQ對象.css("屬性名") 表示擷取目前屬性名這個樣式的值(内嵌 行内 外鍊樣式都能擷取)
設定樣式:
JQ對象.css("屬性名","屬性值"); 設定單個樣式
JQ對象.css({
})
$("button").eq(1).click(function () {
/*console.log($("#box").css("width"));
console.log($("#box").css("backgroundColor"));*/
// $("#box").css("font-size","50px");
$("#box").css({
color:"white",
fontSize:"50px",
marginLeft:"30px",
marginTop:"30px"
})
});
JQ的操作class的方法:
addClass()
$("button").eq(0).click(function () {
// 增加類
$("#box").addClass("bg co")
})
removeClass()
$("button").eq(1).click(function () {
// 移除類
// $("#box").removeClass("co bg")
$("#box").removeClass();//移除所有類
})
hasClass()
$("button").eq(2).click(function () {
// console.log($("#box").hasClass("bg"));
if($("#box").hasClass("di")){
$("#box").removeClass("di")
}else{
$("#box").addClass("di");
}
})
toggleClass()
$("button").eq(3).click(function () {
// 切換class
$("#box").toggleClass("di")
})
JQ動畫分類:
顯示隐藏動畫
show顯示動畫的操作:
show()
1.不傳參數 就是閃現動畫 直接顯示 控制的是元素的display屬性
2.傳一個字元串速度的值 slow normal fast
600 400 200
控制的屬性是: width height opacity display overFlow
3.傳一個整數毫秒值 控制的屬性有: width height opacity display overFlow
4.傳兩個參數:
參數1: 時長(字元串時間 毫秒值事件都行)
參數2: 回調函數 動畫執行完的回調
hide動畫的操作:
hide() 跟上面的show是一毛一樣的 也是四種參數方式 隻不過 hide控制隐藏
$("button").eq(0).click(function () {
// $("#box").show();
// $("#box").show("fast");
// $("#box").show(20000);
/*$("#box").show(3000,function () {
alert("動畫終于走完了")
})*/
/*$("#box").show(3000);
alert("動畫執行完了")*/
})
$("button").eq(1).click(function () {
// $("#box").hide();
// $("#box").hide("slow");
// $("#box").hide(3000);
$("#box").hide(3000,function () {
alert("終于隐藏了")
});
})
滑入滑出動畫
slideDown(滑入動畫) 表示 元素滑進來
參數跟show的參數格式一毛一樣 但是 不傳任何參數也是有一個預設時長的
控制的是元素的height overFlow
swlideUp(滑出動畫) 跟上面一樣
slideToggle() 滑入滑出切換
如果元素預設隐藏 則執行滑入
如果元素預設是顯示 則執行滑出
$("button").eq(2).click(function () {
// $("#box").slideDown(); //預設有一個時長(應該是200毫秒)
// $("#box").slideDown("fast");
// $("#box").slideDown(10000);
$("#box").slideDown(2000,function () {
alert("終于滑進來了")
});
})
$("button").eq(3).click(function () {
// $("#box").slideUp();
// $("#box").slideUp("slow");
// $("#box").slideUp(2000);
$("#box").slideUp(2000,function () {
alert("終于滑出去了")
});
})
$("button").eq(4).click(function () {
// 滑入滑出切換
// $("#box").slideToggle();
$("#box").slideToggle(2000);
})
淡入淡出動畫
淡入淡出動畫:
控制的是元素的 opacity 參數跟上面都一樣
fadeIn(淡入動畫)
$("button").eq(5).click(function () {
// 淡入動畫
$("#box").fadeIn(2000);
})
$("button").eq(6).click(function () {
// 淡出動畫
$("#box").fadeOut(2000);
})
$("button").eq(7).click(function () {
// 淡入淡出切換
$("#box").fadeToggle(1000);
})
$("button").eq(8).click(function () {
// 淡出到指定透明度 參數:1.時長 2.透明度值
$("#box").fadeTo(2000,0.3)
})
自定義動畫
JQ的自定義動畫:
animate()
參數1: 動畫的json對象
參數2:動畫的執行時長
參數3: 動畫執行完的回調函數
$("button").eq(0).click(function () {
/* $("#box").animate({
width:400,
height:400,
left:100,
top:100
},2000)*/
/* $("#box").animate({
marginTop:150,
paddingLeft:200
},2000)*/
/* $("#box").animate({
fontSize:120,
borderWidth:50
},2000)*/
$("#box").animate({
width:400,
height:400,
left:100,
top:100
},2000,function () {
alert("動畫執行完了")
})
})
動畫停止:
$("選擇器").stop(布爾值,布爾值) 不寫預設是false
// 第一個參數表示後續動畫是否要執行
(true:後續動畫不執行 ;false:後續動畫會執行)
// 第二個參數表示目前動畫是否執行完
(true:立即執行完成目前動畫 ;false:立即停止目前動畫)
$("選擇器").stop() 不寫預設都是false
表示立即停止目前動畫 後續動畫繼續執行
$("選擇器").stop(false,false) 跟上面一樣
$("#box").stop(true,false)
表示立即停止目前動畫 後面動畫也不執行 類似于暫停效果
$("#box").stop(true,true)
立即完成目前動畫 後面動畫也不執行
$("#box").stop(false,true)
立即完成目前動畫 後面動畫會執行
在JQ中動畫的使用要始終遵循一點:
要調用animate() 就先 stop()
$("button").eq(1).click(function () {
// $("#box").stop()
// $("#box").stop(true,false)
// $("#box").stop(true,true)
$("#box").stop(false,true)
})