jQuery

jQuery

jQuery官網(wǎng):? http://jQuery.com

jQuery的入口函數(shù)

$(function (){});

$(document).ready(function() {});

jQuery對象和DOM對象

1.原生Js獲取來的對象就是dom對象

2.jQuery方法獲取的對象就是jQuery對象

3.jQuery對象的本質是:利用$對dom對象包裝后產生的對象(偽數(shù)組形式存儲)

注意:只有jQuery對象才能使用jQuery方法,Dom對象則使用原生的js方法。

jQuery 對象

通過$把dom元素進行包裝,$('div')

1.Dom對象轉換為jQuery對象,$(Dom對象)

2.jQuery對象轉Dom對象(兩種方式)

$('div')[index]

$('div').get(index)

jQuery常用api

1.jQuery選擇器

$('#id')?

$('*')

$('.class')

$('div')

$('div,p,span')并集

$('li.current')交集

$('ul>li')子代

$('ul li')后代

jQuery設置樣式

$('div').css('屬性',值)

jQuery隱式迭代

2.jQuery篩選選擇器

$('li:first')

$('li:last')

$('li:eq(2)')

$('li:odd')奇數(shù)

$('li:even')偶數(shù)

jQuery篩選方法(重點)

$('li').parent()?

$('ul').children('li')相當于$('ul>li')子代

$('ul').find('li')相當于$('ul li')后代

$('.first').siblings('li')

$('.first').nextAll()

$('.first').prevAll()

$('div').hasClass('protected')返回布爾值

$('li').eq(2)

jQuery排他思想

$(this).css('color','red');

$(this).siblings().css('color','');

鏈式編程

$(this).css('color','red').siblings().css('color','');

$(this).index()獲取當前元素的索引號

操作css方法

$(this).css('color');

$(this).css('color','red');

$(this).css({'color':'red','font-size':'20px'});

設置類樣式方法

添加類,不影響原先類

$('div').addClass('current');

移除類

$('div').removeClass('current');

切換類

$('div').toggleClass('current');

類操作與className區(qū)別

原生Js中className會覆蓋元素原先里面的類名。

jQuery里面類操作只是對指定類進行操作,不影響原先的類名。

顯示隱藏效果

隱藏語法規(guī)范

hide([speed,[easing],[fn]])

參數(shù)都可以省略,無動畫直接顯示。

speed:三種預定速度之一的字符串("slow","normal",or "fast")或表示動畫時長的毫秒數(shù)值(如:1000)。

easing:(Optional)用來指定切換效果,默認是"swing",可用參數(shù)"linear"。

fn:回調函數(shù),在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。

toggle([speed,[easing],[fn]])

滑動效果

下滑效果語法規(guī)范

slideDown([speed,[easing],[fn]])

上滑效果語法

slideUp([speed,[easing],[fn]])

滑動切換效果

slideToggle([speed,[easing],[fn]])

事件切換

hover([over],out)

over 鼠標移動元素上要觸發(fā)的函數(shù)(相當于mouseenter)

out 鼠標移出元素要觸發(fā)的函數(shù)(相當于mouseleave)

如果只寫一個函數(shù),則鼠標經(jīng)過和離開都會觸發(fā)它。

動畫隊列及其停止排隊方法

動畫或效果隊列

動畫或者效果一旦觸發(fā)就會執(zhí)行,如果多次觸發(fā),就造成多個動畫或效果排隊執(zhí)行。

停止排隊stop()

stop()方法用于停止動畫或效果

注意:stop()寫到動畫或者效果的前面,相當于停止結束上一次的動畫。

stop()方法必須寫到動畫的前面。

淡入淡出效果

淡入效果

fadeIn([speed,[easing],[fn]])

淡出效果

fadeOut([speed,[easing],[fn]])

淡入淡出切換

fadeToggle([speed,[easing],[fn]])

漸進方式調整到指定的不透明度

fafeTo([[speed],opacity,[easing],[fn]])

opacity 透明度必須寫,取值0-1之間

自定義動畫animate

語法

animate(params,[speed],[easing],[fn])

params? 想要更改的樣式屬性,以對象形式傳遞,必須寫,屬性名可以不用帶引號,如果是復合屬性則需要采取駝峰命名法borderLeft。其余參數(shù)都可以省略。

jQuery屬性操作

設置或獲取元素固有屬性值prop()

獲取屬性? prop('屬性')

設置屬性prop('屬性','屬性值')

設置或獲取元素自定義屬性值attr()

獲取屬性? attr('屬性')

設置屬性? atte('屬性','屬性值')

也可以獲取h5自定義屬性

數(shù)據(jù)緩存 data()

data() 方法可以在指定的元素上存取數(shù)據(jù),并不會修改dom元素結構,一旦頁面刷新,之前存放的數(shù)據(jù)都將被移除。

附加數(shù)據(jù)語法

data('name','value')

獲取數(shù)據(jù)語法

data('name')

還可以讀取h5自定義屬性data-index,得到的是數(shù)字型。

:checked選擇器,查找被選中的表單元素。

jQuery內容文本值

主要針對元素的內容還有表單的值操作。

1.普通元素內容html()? 相當于原生的innerHTML

html()? //獲取元素的內容

html('內容')? //設置元素的內容

2.普通元素文本內容 text()

text()? 獲取元素的文本內容

text('文本內容')? 設置元素的文本內容

3.表單的值value()?

val()? 獲取表單的值

value('內容')? 設置表單的值

toFixed(2)? 保留兩位小數(shù)

jQuery元素操作

遍歷元素

jQuery隱式迭代是對同一類元素做同樣的操作,如果想給同一類元素做不同操作,就需要遍歷。

語法1

$('div').each( function (index,domEle){})

index 每個元素的索引號,domEle是每個dom元素對象,不是jQuery對象

所以想要使用jQuery方法,需要給這個dom元素轉換為jQuery對象 $(domEle)

語法2

$.each(object,function (index,element){})

$.each()方法可用于遍歷任何對象,主要用于數(shù)據(jù)處理,比如數(shù)組,對象。

里面的函數(shù)有兩個參數(shù),index是每個元素的索引號,element遍歷內容。

創(chuàng)建元素

語法:$("<li></li>");

添加元素

1.內部添加? element.append("內容")

? element.prepend("內容")

2.外部添加

element.after("內容") 把內容放入目標元素后面

element.before("內容") 把內容放入目標元素前面

內部添加元素,生成以后為父子關系。

外部添加元素,生成以后為兄弟關系。

刪除元素

element.remove()? 刪除匹配的元素,本身

element.empty()? 刪除匹配的元素集合中所有的子節(jié)點

element.html("")? 清空匹配的元素內容

remove 刪除元素本身

empty()和html("")作用等價,都可以刪除元素里面的內容,只不過html還可以設置內容。

jQuery尺寸,位置操作

jQuery尺寸

width()/height()? 取得匹配元素寬度和高度值,只算width/height

innerWidth() /innerHeight()? 取得匹配元素寬度和高度值,包含padding

outerWidth()/outHeight()? 取得匹配元素寬度和高度值,包含padding,border

outWidth(true)/outHeight(true)? 取得匹配元素寬度和高度值,包含padding,border,margin

以上參數(shù)為空,是獲取相應值,返回的是數(shù)字型,如果參數(shù)為數(shù)字,則是修改相應值,參數(shù)可以不必寫單位。

jQuery位置

1.offset()設置或獲取元素偏移

offset()方法設置或返回被選元素相對于文檔的偏移坐標,跟父級沒有關系。該方法有2個屬性left,top。

top用于獲取距離文檔頂部的距離,left用于獲取距離文檔左側的距離。

可以設置元素的偏移 offset({top:10,left:30});

2.position() 獲取元素偏移

position()用于返回被選元素相對于帶有定位的父級偏移坐標,如果父級都沒有定位,則以文檔為準。該方法有兩個屬性left 和top。position().top用于獲取距離定位父級頂部的距離,position().left用于獲取距離定位父級左側的距離。該方法只能獲取。

3.scrollTop()/scrollLeft()設置或獲取元素被卷去的頭部和左側

scrollTop()方法設置或返回被選元素被卷去的頭部。不跟參數(shù)是獲取,參數(shù)是不帶單位的數(shù)字則是設置被卷去的頭部。

帶有動畫的返回頂部$("body,html").animate({scrollTop:0})

jQuery事件

事件注冊

element.事件(function (){})

$("div").click(function (){})

mouseover,mouseout,mouseenter,mouseleave,blur,focus,change,keydown,keyup,resize,scroll等。

事件處理on()綁定事件

on()方法在匹配元素上綁定一個或多個事件的事件處理函數(shù)。

語法:element.on(events,[selector],fn)

events:一個或多個用空格分隔的事件類型,如"click","keydown".

selector:元素的子元素選擇器.

fn回調函數(shù),即綁定在元素身上的偵聽函數(shù)。

on()方法的優(yōu)勢1:

可以綁定多個事件,多個處理事件程序。

$("div").on({

? ? mouseover : function () {},

? ? mouseout : function () {},

? ? click : function () {}

});

如果事件處理程序相同

$("div").on("mouseover mouseout",function () {

? ? ? $(this).toggleClass("current");

});

on()方法的優(yōu)勢2:

可以事件委托操作,事件委托的定義是,把原來加給子元素身上的事件綁定在父元素身上,就是把事件委托給父元素。

$("um").on("click","li",function () {});

在此之前有bind(),live(),delegate()等方法來處理事件綁定或者事件委派,最新版用on代替他們。

on()方法優(yōu)勢3:

動態(tài)創(chuàng)建的元素,click()沒有辦法綁定事件,on()可以給動態(tài)生成的元素綁定事件。

$("div").on("click","p",function (){

? ? alert("俺可以給動態(tài)生成的元素綁定事件");

});

$("div").append($("<p>我是動態(tài)創(chuàng)建的p</p>")):

事件處理off()解綁事件

off()方法可以移除通過on()方法添加的事件處理程序。

$("p").off()? //解綁p元素所有事件處理程序

$("p").off("click")? //解綁p元素上面的點擊事件,后面的off是偵聽函數(shù)名

$("ul").off("click","li");? //解綁事件委托

如果有的事件只想觸發(fā)一次,可以使用one()來綁定事件。

自動觸發(fā)事件trigger()

輪播圖自動播放功能跟點擊右側按鈕一致,可以利用定時器自動觸發(fā)右側按鈕點擊事件,不必鼠標點擊觸發(fā)。

element.click()? //第一種簡寫形式

element.trigger("type")? //第二種自動觸發(fā)模式

$("p").on("click",function () {

? ? alert("hi");

});

$("p").trigger("click");? //此時自動觸發(fā)點擊事件,不需要鼠標點擊。

element.triggerHandler(type)? //第三種自動觸發(fā)模式

triggerHandler模式不會觸發(fā)元素的默認行為,這是和前面兩種的區(qū)別。

jQuery事件對象

事件被觸發(fā),就會有事件對象的產生。

element.on(events,[selector],function (event) {});

阻止默認行為: event.preventDefault() 或者 return false

阻止冒泡:event.stopPropagation()

jQuery對象拷貝

如果想要把某個對象拷貝(合并)給另一個對象使用,此時可以使用$.extend()方法

語法$.extend([deep],target,object1,[object])

deep :如果設為true為深拷貝,默認為false淺拷貝。

target:要拷貝的目標對象。

object1:待拷貝到第一個對象的對象。

object:待拷貝到第N個對象的對象。

淺拷貝是把被拷貝的對象復雜數(shù)據(jù)類型中的地址拷貝給目標對象,修改目標對象會影響被拷貝對象。

深拷貝,前面加true,完全克隆(拷貝的對象,而不是地址),修改目標對象不會影響被拷貝對象。

jQuery多庫共存

$符號可以被jQuery代替,

jQuery變量規(guī)定新的名稱:$.noConflict()

var xx = $.noConflict();

jQuery插件庫http://www.jq22.com/

jQuery之家http://www.htmleaf.com/

使用步驟:引入相關文件,復制相關html,css,js

Ctrl+h查找替換

全屏滾動fullpag.js

http://github.com/alvarotrigo/fullpage.js

http://www.dowebok.com/demo/2014/77/

bootstrap 框架也是依賴于jQuery開發(fā)的,因此里面的js插件使用,也必須引入jQuery文件。

案例toDolist

www.todolist.cn

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容