jQuery

jQuery

jQuery官網:? http://jQuery.com

jQuery的入口函數

$(function (){});

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

jQuery對象和DOM對象

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

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

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

注意:只有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')奇數

$('li:even')偶數

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]])

參數都可以省略务唐,無動畫直接顯示脚翘。

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

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

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

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

滑動效果

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

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

上滑效果語法

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

滑動切換效果

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

事件切換

hover([over],out)

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

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

如果只寫一個函數涩咖,則鼠標經過和離開都會觸發(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横辆。其余參數都可以省略。

jQuery屬性操作

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

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

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

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

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

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

也可以獲取h5自定義屬性

數據緩存 data()

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

附加數據語法

data('name','value')

獲取數據語法

data('name')

還可以讀取h5自定義屬性data-index,得到的是數字型脆侮。

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

jQuery內容文本值

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

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

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

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

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

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

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

3.表單的值value()?

val()? 獲取表單的值

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

toFixed(2)? 保留兩位小數

jQuery元素操作

遍歷元素

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

語法1

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

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

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

語法2

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

$.each()方法可用于遍歷任何對象蚣抗,主要用于數據處理,比如數組瓮下,對象翰铡。

里面的函數有兩個參數,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

以上參數為空朝群,是獲取相應值燕耿,返回的是數字型,如果參數為數字姜胖,則是修改相應值誉帅,參數可以不必寫單位。

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()方法設置或返回被選元素被卷去的頭部。不跟參數是獲取镜遣,參數是不帶單位的數字則是設置被卷去的頭部己肮。

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

jQuery事件

事件注冊

element.事件(function (){})

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

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

事件處理on()綁定事件

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

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

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

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

fn回調函數,即綁定在元素身上的偵聽函數寓辱。

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是偵聽函數名

$("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個對象的對象恬涧。

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

深拷貝气破,前面加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

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末强重,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子贸人,更是在濱河造成了極大的恐慌间景,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺智,死亡現場離奇詭異倘要,居然都是意外死亡,警方通過查閱死者的電腦和手機十拣,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門封拧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夭问,你說我怎么就攤上這事泽西。” “怎么了缰趋?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵捧杉,是天一觀的道長陕见。 經常有香客問我,道長糠溜,這世上最難降的妖魔是什么淳玩? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮非竿,結果婚禮上蜕着,老公的妹妹穿的比我還像新娘。我一直安慰自己红柱,他們只是感情好承匣,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锤悄,像睡著了一般韧骗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上零聚,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天袍暴,我揣著相機與錄音,去河邊找鬼隶症。 笑死政模,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蚂会。 我是一名探鬼主播淋样,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胁住!你這毒婦竟也來了趁猴?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤彪见,失蹤者是張志新(化名)和其女友劉穎儡司,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體余指,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡枫慷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了浪规。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡探孝,死狀恐怖笋婿,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情顿颅,我是刑警寧澤缸濒,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響庇配,放射性物質發(fā)生泄漏斩跌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一捞慌、第九天 我趴在偏房一處隱蔽的房頂上張望耀鸦。 院中可真熱鬧,春花似錦啸澡、人聲如沸袖订。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洛姑。三九已至,卻和暖如春皮服,著一層夾襖步出監(jiān)牢的瞬間楞艾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工龄广, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留硫眯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓蜀细,卻偏偏與公主長得像舟铜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奠衔,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355