JavaScript筆記12:控制CSS、事件、定時器
目錄
-
js控制css
// 語法:
元素.style.樣式名 = 樣式值
-
注意:在CSS中的樣式名如果含有“-”,則這種名稱在JS中是不合法的。則這種名稱需要修改為駝峰命名法(即去掉減號,把減號後的第一個字母改大寫)
-
通過style屬性設定的樣式都說內聯樣式,而內聯樣式有較高的優先順序,所以通過js修改的樣式往往都會立即顯示。但是如果在樣式中寫了!important,則此時樣式會具有最高優先順序,即使是通過js也不能進行覆蓋,此時將會導致js樣式失效。所以儘量不要使用!important
-
通過style屬性只能讀取內聯樣式,無法讀取樣式表中的樣式
// 獲取元素的當前顯示的樣式
元素.currenStyle.樣式名
-
注意:currenStyle只有IE瀏覽器支援=
// getComputedStyle()語法
兩個引數:
1、要獲取樣式的元素
2、可以傳遞一個偽元素,一般都是傳null
var timer = setInterval(function(){
console.log(num++);
}, 100);
clearInterval()函式關閉一個定時器
clearInterval(timer);
setTimeout()函式延時呼叫
setTimeout(function(){
console.log(num++);
},3000);
-
在其他瀏覽器中可以使用getComputedStyle()這個方法來獲取元素當前的樣式
-
getComputedStyle()是window的方法,可以直接使用
-
兩個引數:
-
要獲取樣式的元素
-
可以傳遞一個偽元素,一般都是傳null
-
-
該方法會返回一個物件,物件中封裝了當前元素對應的樣式
-
可以通過“物件.樣式名”來讀取樣式
-
如果獲取的樣式沒有設定值,則會獲取到真實的值,而不是預設值。比如:沒有設定width,它不會獲取到auto,而是一個長度
-
注意:不支援IE8及以下的瀏覽器
-
// 定義一個函式,用來獲取指定元素的當前樣式 // 引數:1、obj:要獲取樣式的元素;2、name:要獲取的樣式名 function getStyle(obj, name){ if(getComputedStyle){ return getComputedStyle(obj, null)[name]; }else{ return obj.currentStyle[name]; } }
-
其他樣式相關屬性
-
我跳了……(110P)
-
-
事件的冒泡
-
指定的是事件向上傳導,當後代元素上的事件被接觸時,其祖先元素的相同事件也會被觸發
-
取消冒泡:將事件物件的cancelBubble屬性設定為true即可取消冒泡
-
-
事件的委派
-
事件的委派指的是將事件統一繫結給元素的共同祖先元素,這樣後代元素上的事件觸發時,會一直冒泡到祖先元素,從而通過祖先元素的響應函式來處理事件
-
利用了事件的冒泡,通過委派可以減少繫結的次數,提高效能
-
-
繫結多個響應函式
-
單個:“物件.事件 = 函式”單個
-
使用物件.事件 = 函式的形式繫結響應函式,只能同時為一個元素繫結一個響應函式
-
不能繫結多個,繫結多個時,最後一個會把前面的覆蓋
-
-
多個:addEventListener()方法
-
通過這個方法可以為元素繫結多個響應函式
-
引數
-
事件的名稱(字串,不要on,如onclick寫click即可)
-
回撥函式,當事件出發時該函式會被呼叫
-
是否在捕獲階段觸發事件,需要一個布林值,一般傳false
-
-
false時,先繫結先執行;true時,先繫結後執行
-
this是繫結事件的物件
-
不支援IE8及以下瀏覽器
-
-
-
多個:attachEvent()函式繫結
-
後繫結先執行
-
在IE8及以下中使用
-
this是window
-
引數:
-
事件名稱,需要on
-
回撥函式
-
-
btn01.attachEvent("onclick", function(){ alert(1); });
-
相容所有瀏覽器的版本
-
引數:
-
obj:要繫結事件的物件
-
eventStr:事件的名稱,字串,不要on
-
callback:回撥函式
-
-
-
function bind(obj, eventStr, callback){ if(obj.addEventListener){ obj.addEventListener(eventStr, callback, false); }else{ obj.attachEvent("on" + eventStr, function(){ // 匿名函式中呼叫回撥函式 // 下面的方法可以把this從window改為呼叫物件 callback.call(obj); }); } }
-
事件的傳播
-
三個階段:
-
捕獲階段:
-
在捕獲階段時從最外層的祖先元素向目標元素進行事件的捕獲,但是預設此時不會觸發事件
-
IE8及以下,沒有捕獲階段
-
-
目標階段:
-
事件捕獲到目標,捕獲結束開始在目標元素上觸發
-
-
冒泡階段:
-
事件從目標元素向他的祖先元素傳遞,依次觸發祖先元素上的事件
-
-
-
-
-
滾輪事件
-
onmousewheel滑鼠滾輪滾動事件
-
event.wheelDelta 判斷滾輪滾動的方向(正值是向上,負值是向下)
-
滾輪滾動時,如果瀏覽器的滾條隨之滾動,這是瀏覽器的預設行為,可以通過return false來取消預設行為
-
-
鍵盤事件
-
鍵盤事件:
-
onkeydown:按鍵被按下,按下不放時事件會連續觸發。連續觸發時,第一次後會停頓一下,之後會很快執行下一次
-
onkeyup:按鍵被鬆開
-
-
鍵盤事件一般會繫結給一些可以獲取到焦點的物件,或者是document
-
四個屬性:
-
keyCode屬性
-
可以通過keyCode屬性來獲取按鍵的編碼,可以判斷是哪個按鍵(注意:使用英文輸入法,中文會一直是229)
-
-
altkey
-
ctrlkey
-
shiftkey
-
這三個屬性用來判斷alt、ctrl、shift是否被按下,按下返回true,否則返回false
-
-
-
瀏覽器物件模型BOM
-
BOM可以是我們通過JS來操作瀏覽器
-
BOM物件:
-
window:
-
代表整個瀏覽器的視窗,同時也是網頁中的全域性物件
-
-
Navigator:
-
代表當前瀏覽器的資訊,通過該物件可以識別不同的瀏覽器
-
-
Location:
-
代表當前瀏覽器的位址列資訊,通過Location可以獲取位址列資訊,或者操作瀏覽器跳轉頁面
-
直接列印location會列印出當前頁面的完整路徑
-
直接修改location屬性的值為一個完整的路徑,則頁面會自動跳轉到該路徑,並生成相應的歷史記錄
-
assign()方法:用來跳轉到其他頁面,效果個直接修改location的值一樣
-
reload()方法:重新整理,重新載入當前頁面
-
傳入true時,會強制清空快取重新整理頁面
-
-
replace()方法:使用一個新頁面替換當前頁面,不會生成歷史記錄
-
-
History
-
代表瀏覽器的歷史記錄,可以通過該物件來操作瀏覽器的歷史記錄
-
由於隱私問題,該物件不能獲取到具體的歷史記錄,只能操作瀏覽器向前或向後翻頁,而且該操作只在當次訪問有效
-
lenght屬性:可以獲取當前訪問的連結數量
-
back()方法:可以用來回退到是一個頁面
-
forward()方法:可以用來跳轉到下一個頁面
-
go():可以跳轉到指定的頁面,需要一個整數作為引數
-
0是當前頁面
-
正數是向前跳轉n個頁面
-
負數是向後跳轉n個頁面
-
-
-
Screen
-
代表使用者的螢幕資訊,通過該物件可以獲取到使用者的顯示器的相關資訊
-
-
-
-
定時器
-
setInterval()函式開啟定時器
-
定時呼叫,每隔一段時間呼叫一次函式
-
引數:
-
回撥函式,該函式會每隔一段時間被呼叫一次;
-
每次呼叫間隔的時間,單位是毫秒
-
-
返回值:
-
返回一個Number型別的資料,該資料作為該定時器的唯一標識
-
-
-
-
-
clearInterval(計時器標識)用來關閉一個定時器
-
可以接受任意識別符號,如果是有效定時器則停止,如果不是則沒有效果
-
-
-
延長一段時間之後再呼叫函式執行,只執行一次
-
相關文章
- Random 專案總結 -12 定義定時器,繫結事件random定時器事件
- JavaScript定時器JavaScript定時器
- JavaScript 定時器JavaScript定時器
- 還在用定時器嗎?藉助 CSS 來監聽事件定時器CSS事件
- MySQL定時器EVENT學習筆記MySql定時器筆記
- JavaScript定時器演示JavaScript定時器
- JavaScript6:定時器JavaScript定時器
- javascript 定時器工作原理JavaScript定時器
- odoo12 定時器Odoo定時器
- CSS選擇器筆記CSS筆記
- JMeter學習筆記--詳解JMeter定時器JMeter筆記定時器
- 嵌入式筆記5.1 定時器詳解筆記定時器
- Windows控制檯的定時器Windows定時器
- Flowable框架-啟動事件-定時器啟動事件框架事件定時器
- 輪播圖(JavaScript定時器)JavaScript定時器
- JavaScript事件迴圈及非同步原理筆記JavaScript事件非同步筆記
- 前端筆記之JavaScript(十)深入JavaScript節點&DOM&事件前端筆記JavaScript事件
- JavaScript 計時事件JavaScript事件
- 筆記-10.2、HTML-CSS選擇器筆記筆記HTMLCSS
- 【筆記】oracle 定時作業筆記Oracle
- JavaScript高階程式設計筆記 事件冒泡和事件捕獲JavaScript程式設計筆記事件
- javascript怎麼清除所有定時器JavaScript定時器
- 1.15 JavaScript6:定時器JavaScript定時器
- CSS筆記——屬性選擇器CSS筆記
- 基於51微控制器的定時器定時器
- JavaScript學習筆記10: 事件繫結&監聽JavaScript筆記事件
- JavaScript學習12:事件物件JavaScript事件物件
- css樣式設定技巧學習筆記CSS筆記
- JavaScript 定時器函式非同步原理JavaScript定時器函式非同步
- 微控制器學習(六)定時器的使用定時器
- css 選擇器及權重筆記CSS筆記
- CSS 小結筆記之選擇器CSS筆記
- 【JavaScript定時器小案例】常見的幾種定時器實現的案例JavaScript定時器
- CSS筆記CSS筆記
- Swoft 學習筆記之控制器筆記
- docker筆記24-pod控制器Docker筆記
- angular學習筆記(十二)-控制器Angular筆記
- c++控制檯程式實現定時器C++定時器