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

題目1:jQuery 能做什么?

jQuery是什么:
官網解釋: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庫,可以更簡單,快速的操控頁面元素。
功能:

  • 選擇網頁元素
  • 改變結果集
  • 元素的操作:取值和賦值
  • 元素的操作:移動
  • 元素的操作:復制、刪除和創建
  • 工具方法
  • 事件操作
  • 特殊效果
  • AJAX

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

題目2: jQuery 對象和 DOM 原生對象有什么區別?如何轉化?

文檔對象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結構樹)提供了一個結構化的表述并且定義了一種方式—程序可以對結構樹進行訪問,以改變文檔的結構,樣式和內容。DOM對象可以使用原生JS進行操作。
jQuery對象就是通過jQuery包裝DOM對象后產生的對象,jQuery對象是jQuery獨有的,其可以使用jQuery里的方法。但是jQuery無法使用DOM對象的任何方法,同理DOM對象也不能使用jQuery里的方法,亂使用會報錯。
jQuery對象轉DOM對象:
jQuery對象是一個數據對象,可以通過[index],get(index)的方法,來得到相應的DOM對象。

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

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

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

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

題目3:jQuery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

jQuery提供了四種方法進行時間監聽,on,bind,delegate,one(live已經棄用),相應的解除監聽off,unbind,undelegate。

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

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

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

jQuery綁定處理函數到 $(document) 元素,并把 ‘click’ 和 ‘a’ 作為函數的參數。有事件冒泡到document節點的時候,檢查這個事件是不是 click 事件,target element能不能匹配 ‘a’ css選擇器,如果兩個條件都是true,處理函數執行。

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

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

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

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

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

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

on實現事件委托很簡單, '.class'為父元素,on后面括號里的selector 參數為子元素,當‘.class’的事件觸發時,判斷事件來源是否子元素selector,若是,則執行處理函數,從而實現事件委托。
on是最基本的事件綁定方法,bind,delegate,live都是調用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,不占據文檔空間
visibility:hidde;//可見性為hidden,看不見,占據文檔空間
opacity:0;//不透明度為0,即為透明,占據文檔空間
元素位置在窗口之外

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() 方法執行 CSS 屬性集的自定義動畫。
該方法通過CSS樣式將元素從一個狀態改變為另一個狀態。CSS屬性值是逐漸改變的,這樣就可以創建動畫效果。
只有數字值可創建動畫(比如 "margin:30px")。字符串值無法創建動畫(比如 "background-color:red")。
注釋:使用 "+=" 或 "-=" 來創建相對動畫(relative animations)。

題目6:如何設置和獲取元素內部 HTML 內容?如何設置和獲取元素內部文本?

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

html()和text()都是讀取兩用的方法,沒有參數時返回元素現有HTML或text內容,有參數時則將參數傳遞為HTML或text。

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

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

題目8:使用 jQuery實現如下效果

demo
效果

題目9:. 使用 jQuery 實現如下效果

[


效果
demo

題目10:實現如下效果

[

Ps:當點擊按鈕時使用如下數據

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: '珂蘭 黃金轉運珠 猴哥款',
    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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容