jQuery選擇器_Dom操作_樣式_事件處理_動畫

題目1:jQuery 能做什么倦春?

jQuery是什么:
官網(wǎng)解釋:jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
簡而言之馅闽,jQuery是一個JS庫丧慈,可以更簡單,快速的操控頁面元素兴泥。
功能:

  • 選擇網(wǎng)頁元素
  • 改變結(jié)果集
  • 元素的操作:取值和賦值
  • 元素的操作:移動
  • 元素的操作:復制工育、刪除和創(chuàng)建
  • 工具方法
  • 事件操作
  • 特殊效果
  • AJAX

DOM能干的,它干的更理解易于簡單搓彻,DOM不能干的如绸,它也能干。

題目2: jQuery 對象和 DOM 原生對象有什么區(qū)別旭贬?如何轉(zhuǎn)化竭沫?

文檔對象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結(jié)構(gòu)樹)提供了一個結(jié)構(gòu)化的表述并且定義了一種方式—程序可以對結(jié)構(gòu)樹進行訪問骑篙,以改變文檔的結(jié)構(gòu),樣式和內(nèi)容森书。DOM對象可以使用原生JS進行操作靶端。
jQuery對象就是通過jQuery包裝DOM對象后產(chǎn)生的對象,jQuery對象是jQuery獨有的凛膏,其可以使用jQuery里的方法杨名。但是jQuery無法使用DOM對象的任何方法,同理DOM對象也不能使用jQuery里的方法猖毫,亂使用會報錯台谍。
jQuery對象轉(zhuǎn)DOM對象:
jQuery對象是一個數(shù)據(jù)對象,可以通過[index]吁断,get(index)的方法趁蕊,來得到相應的DOM對象。

$('div')[index];
$('div').get(index);

注意:$(‘div’).eq(index)返回的還是jQuery對象$(‘div’).eq(index)[index]是DOM對象

DOM對象轉(zhuǎn)jquery對象:
DOM對象仔役,只需要用$()把DOM對象包裝起來掷伙,就可以獲得一個jQuery對象了。

var btn = document.querySelector('button');//DOM對象
$btn =  $(btn)又兵;//jQuery對象

題目3:jQuery中如何綁定事件任柜?bind、unbind沛厨、delegate宙地、live、on逆皮、off都有什么作用宅粥?推薦使用哪種?使用on綁定事件使用事件代理的寫法电谣?

jQuery提供了四種方法進行時間監(jiān)聽粹胯,on蓖柔,bind,delegate风纠,one(live已經(jīng)棄用)况鸣,相應的解除監(jiān)聽off,unbind竹观,undelegate镐捧。

$('a').bind('click', handle);//給$('a')的‘click’事件綁定執(zhí)行函數(shù)
$('a').unbind(['click']);//給$('a')解除所有綁定事件【‘click’事件】

jQuery 掃描文檔找到所有 $(‘a(chǎn)’) 元素,然后給每一個找到的元素的 click 事件綁定處理函數(shù)臭增。

$('a').live('click',handle });// $('a')綁定‘click’事件懂酱,執(zhí)行函數(shù)
$('a').die('click',handle });// $('a')解除及‘click’事件執(zhí)行函數(shù)

jQuery綁定處理函數(shù)到 $(document) 元素,并把 ‘click’ 和 ‘a(chǎn)’ 作為函數(shù)的參數(shù)誊抛。有事件冒泡到document節(jié)點的時候列牺,檢查這個事件是不是 click 事件,target element能不能匹配 ‘a(chǎn)’ css選擇器拗窃,如果兩個條件都是true瞎领,處理函數(shù)執(zhí)行。

$('a', $('#container')[0]).live(...);

live方法也可以綁定到指定的元素(或者說“上下文(context)”)而不用綁定到document.

$('#container').delegate('a', 'click', handle);//$('#container')綁定‘click’事件随夸,執(zhí)行函數(shù)
$('#container').undelegate('a', 'click', handle);//$('#container')解除‘click’事件和執(zhí)行函數(shù)

jQuery掃描文檔找到 $(‘#container’)九默,綁定處理函數(shù)到他的 click 事件,’a’ css選擇器作為函數(shù)的參數(shù)宾毒。當有事件冒泡到 $(‘#container’)驼修,檢查事件是不是 click,并檢查target element是不是匹配css選擇器诈铛,如果兩者都符合乙各,執(zhí)行函數(shù)。

one()該方法綁定的事件觸發(fā)一次后自動刪除

$('.class').on( events [,selector ] [,data ], handler);//$('.class')綁定事件
$('.class').off()$('.class')解除事件

on實現(xiàn)事件委托很簡單幢竹, '.class'為父元素觅丰,on后面括號里的selector 參數(shù)為子元素,當‘.class’的事件觸發(fā)時妨退,判斷事件來源是否子元素selector妇萄,若是,則執(zhí)行處理函數(shù)咬荷,從而實現(xiàn)事件委托冠句。
on是最基本的事件綁定方法,bind幸乒,delegate懦底,live都是調(diào)用on來綁定事件,因此罕扎,推薦使用on來綁定事件聚唐。

//delegate源碼
delegate: function( selector, types, data, fn ) {
  return this.on( types, selector, data, fn );
}
//live源碼
live: function( types, data, fn ) {
  jQuery( this.context ).on( types, this.selector, data, fn );
return this;
}
//bind源碼
bind: function( types, data, fn ) {
  return this.on( types, null, data, fn );
}

題目4:jQuery 如何展示/隱藏元素丐重?

首先,html中要隱藏元素杆查,無外乎幾種方法扮惦。

display:none;//展示形式為none,不占據(jù)文檔空間
visibility:hidde亲桦;//可見性為hidden崖蜜,看不見,占據(jù)文檔空間
opacity:0客峭;//不透明度為0豫领,即為透明,占據(jù)文檔空間
元素位置在窗口之外

jQuery有hide()舔琅,fadeOut()等恐,slideDown(或slideUp())方法都可以達到隱藏元素,對應的原理就是元素的display屬性备蚓,opacity屬性和文檔位置课蔬。
推薦使用hide()方法,簡單星著,無副作用。

$(selector).hide([duration ] [,easing ] [,complete ])粗悯;//隱藏元素
$(selector).show( [duration ] [, easing ] [, complete ] );//展示元素

題目5: jQuery 動畫如何使用虚循?

jQuery有幾個簡單的動畫方法

$(selector).hide([duration ] [,easing ] [,complete ]);//隱藏元素
$(selector).show( [duration ] [, easing ] [, complete ] );//展示元素
$(selector).fadeIn( [duration ] [, easing ] [, complete ] )样傍;//淡入
$(selector).fadeOut( [duration ] [, easing ] [, complete ] )横缔;//淡出
$(selector).slideDown( [duration ] [, easing ] [, complete ] );//下滑
$(selector).slideUp( [duration ] [, easing ] [, complete ] )衫哥;//上滑

然而茎刚,如此完美的jQuery還有大招---自定義動畫

$(selector).animate( properties [, duration ] [, easing ] [, complete ] );

animate() 方法執(zhí)行 CSS 屬性集的自定義動畫撤逢。
該方法通過CSS樣式將元素從一個狀態(tài)改變?yōu)榱硪粋€狀態(tài)膛锭。CSS屬性值是逐漸改變的,這樣就可以創(chuàng)建動畫效果蚊荣。
只有數(shù)字值可創(chuàng)建動畫(比如 "margin:30px")初狰。字符串值無法創(chuàng)建動畫(比如 "background-color:red")。
注釋:使用 "+=" 或 "-=" 來創(chuàng)建相對動畫(relative animations)互例。

題目6:如何設置和獲取元素內(nèi)部 HTML 內(nèi)容奢入?如何設置和獲取元素內(nèi)部文本?

$(selector).html([string]);//設置或獲取元素HTML內(nèi)容
$(selector).text([string]);//設置或獲取元素text內(nèi)容

html()和text()都是讀取兩用的方法媳叨,沒有參數(shù)時返回元素現(xiàn)有HTML或text內(nèi)容腥光,有參數(shù)時則將參數(shù)傳遞為HTML或text关顷。

題目7:如何設置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設置和獲取元素屬性武福?

$(selector).val();//設置或獲取input的value值
$(selector).attr();//設置或獲取元素屬性
$(selector).prop();//設置或獲取元素的property
$(selector).css();//設置或獲取元素的property

題目8:使用 jQuery實現(xiàn)如下效果

demo
效果

題目9:. 使用 jQuery 實現(xiàn)如下效果

[


效果
demo

題目10:實現(xiàn)如下效果

[

Ps:當點擊按鈕時使用如下數(shù)據(jù)

var products = [
{
    img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg', 
    name: '珂蘭 黃金手 猴哥款',
    price: '¥405.00'
 },{
    img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg', 
    name: '珂蘭 黃金轉(zhuǎn)運珠 猴哥款',
    price: '¥100.00' 
},{
    img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg', 
    name: '珂蘭 黃金手鏈 3D猴哥款',
    price: '¥45.00'
}];

效果
demo

題目11:模仿視頻6议双,完成 左右切換的 Tab 效果

Screen Record_2017-08-12-02-08-39.mp4_1502474540.gif

效果
demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艘儒,隨后出現(xiàn)的幾起案子聋伦,更是在濱河造成了極大的恐慌,老刑警劉巖界睁,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件觉增,死亡現(xiàn)場離奇詭異,居然都是意外死亡翻斟,警方通過查閱死者的電腦和手機逾礁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來访惜,“玉大人嘹履,你說我怎么就攤上這事≌龋” “怎么了砾嫉?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窒篱。 經(jīng)常有香客問我焕刮,道長,這世上最難降的妖魔是什么墙杯? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任配并,我火速辦了婚禮,結(jié)果婚禮上高镐,老公的妹妹穿的比我還像新娘溉旋。我一直安慰自己,他們只是感情好嫉髓,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布观腊。 她就那樣靜靜地躺著,像睡著了一般算行。 火紅的嫁衣襯著肌膚如雪恕沫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天纱意,我揣著相機與錄音婶溯,去河邊找鬼。 笑死,一個胖子當著我的面吹牛迄委,可吹牛的內(nèi)容都是我干的褐筛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼叙身,長吁一口氣:“原來是場噩夢啊……” “哼渔扎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起信轿,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晃痴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后财忽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倘核,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年即彪,在試婚紗的時候發(fā)現(xiàn)自己被綠了紧唱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡隶校,死狀恐怖漏益,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情深胳,我是刑警寧澤绰疤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站舞终,受9級特大地震影響轻庆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜权埠,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一榨了、第九天 我趴在偏房一處隱蔽的房頂上張望煎谍。 院中可真熱鬧攘蔽,春花似錦、人聲如沸呐粘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽作岖。三九已至唆垃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痘儡,已是汗流浹背辕万。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渐尿。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓醉途,卻偏偏與公主長得像,于是被迫代替她去往敵國和親砖茸。 傳聞我的和親對象是個殘疾皇子隘擎,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容