jQuery(愛前端)

一?jQuery 簡介

官網:www.jquery.com

口號:寫更少的代碼,做更多的事情

jQuery 是一個快速、小型的、特性很多的JS庫,它把很多事兒都變得簡單。jQuery是免費的、開源的。

jQuery 是 DOM 編程領域的霸主,極大的簡化了原生 JavaScript 的 DOM 編程

jQuery 中含有豐富的輪子,完美解決了選擇元素難、樣式難、動畫難、批量操作難等各種兼容問題,

讓工程師只需要思考業務,而不必思考細枝末節的兼容問題

?

jQuery有兩條版本線:1.X、2.X

?jQuery 2.X 和 1.X 的功能完全一致,API完全一致,但是 2.X 不兼容?IE6、7、8

下載的時候有兩個選擇:

?

?二 jQuery 整體感知

2.1 選擇器

$()?函數就是?jQuery?的核心函數,query?就是選擇的意思,也就是說?jQuery的核心招牌功能就是選擇元素:

$("#box ul li.haha span").css("background-color","red");

語法:?$(“選擇器”)

$?可以用?jQuery來代替,$?jQuery?是同一個函數:?

jQuery("#box ul li.haha span").css("background-color","red");

2.2 樣式

?得到樣式(得到計算后的樣式):$(".box").css("width");

設置樣式: 語法??$(“選擇器”).css(JSON);

2.3 動畫?

jQuery 內部含有一個運動框架? ? animate 函數

2.4 批量添加監聽、節點關系

?

三 jQuery?

3.1 $() 函數

jQuery 對象不是原生 JS? 對象?

$("選擇器")?選擇出來的東西,是一個類數組對象,是 jQuery 自己的對象,這個 jQuery 對象后面不能跟著原生 JS 的語法:

?$("#box").style.backgroundColor = "red";

因為 .style.backgroundColor 是原生JS語法,$() 原則的對象是 jQuery 對象,不能跟著原生?

?jQuery 對象,轉為原生 JS 對象

?

3.2 引號問題

$('選擇器')??

注意引號不能丟!!在jQuery世界中,只有三個東西不能加引號,其他必須加引號:

?

3.3 支持的選擇器

jQuery 支持所有的 css2.1 的選擇器

也支持部分 css3 的選擇器

3.4 篩選器

特別的,eq 可以單獨提煉為方法,可以連續打點:?

提煉出來的好處是,可以用變量

?

3.5 css 函數

css 函數可以讀樣式,可以設樣式(所有的數值,不需要單位)

讀樣式,可以讀取計算后樣式,寫一個參數,是不是駝峰,無所謂,但是必須加引號

?

特別的,還支持 += 寫法:?

3.5 animate 函數

有沒有緩沖呢,有,jQuery 需要插件來完成,我們日后說。

jQuery 默認不是勻速,是easeInOut

jQuery默認有一個處理機制,叫做動畫排隊。當一個元素接收到了兩個 animate 命令之后,后面的animate會排隊

先1000毫秒橫著跑,然后1000毫秒豎著跑。動畫總時長2000。

如果想讓元素斜著跑,就是同時變化 left 和 top,就寫在同一個 JSON 里面:

不同的元素,不排隊,是同時的

?

3.6 事件監聽

jQuery顛覆了我們的行文習慣:

事件名一律不寫 on。特別的,鼠標進入改成了 mouseenter,鼠標離開改為了mouseleave。

?

四 序與迭代

4.1 eq() 方法

看結構: 兩個并列盒子 .box1 和 .box2 中都有 5 個小盒子 div

想讓 .box2 中的第二個盒子背景變綠

$('.box2>p:eq(1)').css('backgroundColor','green');
$('p').eq(6).css('backgroundColor','green');
$('.cur').eq(2).css('backgroundColor','green');
$('.box2>.cur').eq(0).css('backgroundColor','green');

注釋不同選擇器下對應的下標

$() 函數返回的是一組元素,每個方法比如 css 方法內部都有 for 循環迭代?

?4.2 index() 方法

返回這個元素在親兄弟中的排名,無視選擇器怎么選。

$(this).index() 是一個很常見的寫法,表示觸發這個事件的元素,在自己親兄弟中的排名

點擊上一排 div 中的 p, 下一排對應序號的 p 變色

?

強調一下,是 index() 方法,而不是屬性!

?4.3 each()

each() 表示遍歷節點,也叫作迭代符合條件的節點

$('p') 調用 each() 方法,同樣的設置,對比 i 和 $(this).index() 效果

4.4 size() 方法 和 length 屬性

表示 jQuery 對象中元素的個數

?

五 動畫相關

5.1 內置? show() , hide(), toggle()

特別的,如果show()、hide()、toggle()里面有數值,將變為動畫

?也可以加回調函數

?

5.2 slideDown(), slideUp, slideToggle()方法

以上分別是:下滑展開,上滑收回,滑動切換

slideDown() 的起點一定是 display:none 換句話說,只有 display:none 的元素,才能夠調用 slideDown()

同樣的,slideDown、slideUp、slideToggle 里面可以寫動畫時間、回調函數。

動畫機理:

一個 display:none 的元素,瞬間顯示,瞬間高度變為 0,然后 jQuery 自己捕捉原有的 height?設置為動畫的終點

下拉菜單: li > a + div

  mouseenter 事件應該添加在 li 上,而不是 a 上,添加在 a 上,則不能選擇到下拉框中的內容

  div 的位置應該貼著 li 元素,不能有縫隙,因為縫隙不屬于 li 的范圍,也會選擇不到下拉框中的內容

  如果想要有縫隙,下拉框再套一個盒子,用 padding 表示縫隙

?

$(this).find('div').slideDown(200);?

5.3 fadeIn(), fadeOut, fadtTo(), fadeToggle() 方法

以上分別是:淡入, 淡出,淡到一定值,淡入淡出切換

?動畫機理:

一個 display:none 的元素,瞬間可見,然后瞬間變為 opacity:0,往自己的 opacity 上變。

如果沒有設置 opacity,就往1變。

?fadeTo()?有三個參數,第一個參數是動畫的時間,第二個參數是要變到的透明度,第三個參數是回調函數?

?fadeTo的起點不一定是 display:none;

?IE6、7、8 兼容,不用關心 filter 這個東西了,jQuery已經幫你寫了兼容

?

jQuery 呼吸輪播

圖片部分遮蓋案例(有文字):

  遮蓋元素設置 opacity: 0.5;? 文字的透明度也會改變。處理: 文字寫到其他元素中

?

5.4 stop()

語法 :stop( 是否清除隊列, 是否瞬間完成當前動畫 )

如果沒有寫 true 或者 false,默認是 false

$("div").stop( true ).animate({"left":100},1000);

5.5 finish()

finish()? 瞬間完成所有動畫隊列

$("div").finish();

?

手風琴案例:

ul > li*5 直接用 width 的變化來設置,動畫時,最右側可能會出現空白區域

用定位來做:每個元素鼠標 hover 時 left 到固定位置,其它元素也移動到固定位置

5.6 delay()

delay延遲,可以使用連續打點,必須放在運動語句之前

?

?

?5.7? is(':animated')

is() 方法表示身份探測,返回 true, false

判斷是否在運動中,可以防止動畫的積累:

和之前的 stop(),不一樣,動畫正在進行,立即停止手上的動畫,執行新的命令

?

六 節點關系

6.1 原生 JS 中的 nodeType 屬性

任何的 HTML 元素,都有nodeType屬性,值有1~11,老師為大家精簡到了5個:

1? ??元素節點
3文本節點
8注釋節點
9document 節點
10DTD

?

?

?

?

?

6.2 原生 JS 中的節點關系? childNodes?

有兼容性問題,chrome, ie9, ie10... 高級瀏覽器會把空格換行等看成文本節點

ie 6, 7, 8 不會

document.getElementById(“box”).childNodes.length;? //高級瀏覽器?9,低級瀏覽器?4

怎么解決這個差異呢?

其它:

firstChild / lastChild

元素.parentNode

previousSibling / nextSibling

  

?

七 各種特效

?

轉載于:https://www.cnblogs.com/Bijou/p/10207045.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395553.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跳過 centos部署 webpy的各種坑

用centos部署webpy發現的各種坑: 1、python 版本: 2、中文編碼: 3、web模塊路徑: 在命令行里輸入python,能import web,但是網站錯誤報告一直報告沒有找到web模塊,說明web模塊路徑有問題。python…

撰寫本文的所有基本React.js概念

Update: This article is now part of my book “React.js Beyond The Basics”.更新:本文現在是我的書《超越基礎的React.js》的一部分。 Read the updated version of this content and more about React at jscomplete.com/react-beyond-basics.在jscomplete.com…

CentOS 7 firewalld使用簡介

2019獨角獸企業重金招聘Python工程師標準>>> Centos升級到7之后,發現無法使用iptables控制Linuxs的端口,google之后發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口: 1.快速使用說明 開啟…

簡述java語言的特點

簡述java語言的特點: ① 簡單的特性 ② 面向對象的特性 ③ 分布式處理的特性 ④ 健壯的特性 ⑤ 結構中立的特性 ⑥ 安全特性 ⑦ 可移植的特性 ⑧ 解釋的特性 ⑨ 高性能的特性 ⑩ 多線程的特性 轉載于:https://www.cnblogs.com/qq1335…

php函數嵌套 作用域,javascript 嵌套的函數(作用域鏈)_javascript技巧

嵌套的函數(作用域鏈)當你進行函數的嵌套時,要注意實際上作用域鏈是發生變化的,這點可能看起來不太直觀。你可把下面的代碼置入firebug監視值的變化。var testvar window屬性;var o1 {testvar:1, fun:function(){alert(o1: this.testvaro1.fun();1o2.f…

【C#-枚舉】枚舉的使用

枚舉是用戶定義的整數類型。 namespace ConsoleApplication1 {/// <summary>/// 在枚舉中使用一個整數值&#xff0c;來表示一天的階段/// 如&#xff1a;TimeOfDay.Morning返回數字0/// </summary>class EnumExample{public enum TimeOfDay{Morning 0,Afternoon …

Elixir 初嘗試 5 -- 遇見Actor

Actor模型的定義 wiki如是說 The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation. In response to a message that it receives, an actor can: …

創建外部快照_快照事件:現在如何僅通過拍照即可創建日歷事件

創建外部快照by Arjun Krishna Babu通過Arjun Krishna Babu 快照事件&#xff1a;現在如何僅通過拍照即可創建日歷事件 (Snap Event: How you can now create calendar events just by taking a picture) Google just published my first Android app, Snap Event, in their P…

一個備份sql server文件.bak還原成兩個數據庫

一直對這個概念很模糊&#xff0c;今天具體一點。 備份文件只要是正常的.bak文件就好。 數據庫>還原數據庫 直接填寫還原之后的文件名就行。 用一份備份文件還原兩個一樣的庫&#xff0c;只是名稱不一樣。 轉載于:https://www.cnblogs.com/Ly426/p/10209825.html

linux服務器防病毒,Linux系統中你不需要防病毒?_服務器評論-中關村在線

誤區4&#xff1a;Linux是無病毒。Linux的安全性這么好&#xff0c;這是否意味著Linux是無病毒嗎&#xff1f;現實&#xff1a;Linux是非常安全&#xff0c;并不是沒有針對Linux方面的病毒。有許多針對Linux的已知病毒。但是幾乎所有的已知病毒對于Linux在本質上都是非破壞性的…

外置接口請求

1. 請求接口 /*** 請求接口** param url* param paramsStr* param type Connection.Method.POST* param heads* return*/ public JSONObject sendUpload(String url, String paramsStr, Connection.Method type, Map<String, String> heads) {//發送上傳訂單請求Str…

python面向對象-1方法、構造函數

類是指&#xff1a;描述一種事物的定義&#xff0c;是個抽象的概念 實例指&#xff1a;該種事物的一個具體的個體&#xff0c;是具體的東西 打個比方&#xff1a; “人”是一個類。“張三”是人類的一個具體例子 在編程時也是同樣的道理&#xff0c;你先自己定義一個“類”&am…

bzoj3503: [Cqoi2014]和諧矩陣

高斯消元解異或方程組。學了bitset。對比如下 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define REP(i,s,t) for(int is;i<t;i) #define dwn(i,s,t) for(int is;i>t;i--) #define clr(…

她偏愛雛菊一樣的淡黃色_為什么開源項目(非常)偏愛新用戶,以及您可以采取什么措施...

她偏愛雛菊一樣的淡黃色by Filip Hracek由Filip Hracek 為什么開源項目(非常)偏愛新用戶&#xff0c;以及您可以采取什么措施 (Why open source projects (sadly) favor new users, and what you can do about it) Every now and then, all developer products (SDKs, framewo…

linux 腳本 expected,Linux | shell與expect結合使用

在linux操作系統下&#xff0c;使用腳本自動化&#xff0c;一般由兩種方案。方案一&#xff1a;telnetftp方案二&#xff1a;sshscpexpect。以下主要使用sshscpexpect為例進行說明使用方式。第一步&#xff1a;安裝expect&#xff1a;yum -y install expect第二步&#xff1a;驗…

[Swift]LeetCode246.對稱數 $ Strobogrammatic Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

C++中父類的虛函數必需要實現嗎?

一、情景 C中父類的虛函數必需要實現嗎&#xff1f; class Vir{ public:virtual void tryVirtual(); };class CVir:public Vir{ public:void tryVirtual(){std::cout<<"CVir"<<std::endl;} };二、說明 &#xff08;1&#xff09;在main函數中&#xff0c…

解決新浪微博API調用限制 突破rate_limit_status瓶頸

新浪微博開放平臺API的調用和TWITTER接口一樣&#xff0c;都是受限的&#xff0c;以小時為單位進行限定。 他有兩個限制原則 1.用戶不登錄基于IP的限制&#xff0c;每小時1000次 2.用戶登錄了基于用戶的限制&#xff0c;每小時1000次 如果應用是用戶不登錄的那么就是對IP進行限…

chrome前端開發工具_精通Chrome開發人員工具:更高級別的前端開發技術

chrome前端開發工具by Ben Edelstein通過本愛德斯坦 You may already be familiar with the basic features of the Chrome Developer Tools: the DOM inspector, styles panel, and JavaScript console. But there are a number of lesser-known features that can dramatica…

linux給文件夾圖標,linux – 如何在GNOME中以編程方式設置自定義文件夾圖標?

我終于想出了如何做到這一點&#xff01;這是一個在標準Gnome環境中工作的Python腳本&#xff1a;#!/usr/bin/env pythonimport sysfrom gi.repository import Gioif len(sys.argv) not in (2, 3):print Usage: {} FOLDER [ICON].format(sys.argv[0])print Leave out ICON to u…