原生javascript取得元素樣式_javascript技巧
摘要:
我們在開發過程中常會遇到透過js取得或改變DOM元素的樣式,方法有很多,例如:透過更改DOM元素的class。現在我們討論原生js來取得DOM元素的CSS樣式,注意是取得不是設定
在開始之前先說下取得所有最終套用在元素上的CSS屬性物件的意思是,如果沒有給元素設定任何樣式,也會把瀏覽器預設的樣式回傳。
1、ele.style
在學習DOM的時候就看到透過ele.style來取得元素樣式值,但是有時候取得的並非是節點的樣式值,而是空值。這是因為ele.style只能取得寫在元素標籤中的style屬性裡的樣式值,無法取得到定義在和透過載入進來的樣式屬性
例:
var test = document.getElementById("test");
//取得節點的color
test.style.color;
2、getComputedStyle()
getComputedStyle是可以取得目前元素所有最終使用的CSS屬性值。
文法如下:
window.getComputedStyle("元素", "偽類");
這個方法接受兩個參數:要取得計算樣式的元素和一個偽元素字串(例如「:before」) 。如果不需要偽元素訊息,第二個參數可以是null。也可以透過document.defaultView.getComputedStyle("元素", "偽類");來使用
例:
var test = document.getElementById("test"),
demo = window.getComputedStyle(test, null);
//取得節點的color
demo.color
注意:Firefox和Safari會將顏色轉換成rgb格式,如果test節點上沒有任何樣式,透過style.length來查看瀏覽器預設樣式的數量。 IE6-8不支援此方法,需要使用下面的方法
3、ele.currentStyle
currentStyle是IE瀏覽器本身的屬性,其語法與ele.style類似,差別在於element.currentStyle返回的是元素當前應用的最終CSS屬性值(包括外鏈CSS文件,頁面中嵌入的
文法:
var style = dom.currentStyle;
例:
var test = document.getElementById("test"),
demo = test.currentStyle;
//取得節點的color
demo.color;
注意:對於綜合屬性border等,ie返回undefined,其他瀏覽器有的回傳值,有的不返回,但是borderLeftWidth這樣的屬性是回傳值的
4、getPropertyValue()
getPropertyValue取得CSS樣式的直接屬性名稱
文法如下:
window.getComputedStyle(element, null).getPropertyValue(屬性)
例:
var test = document.getElementById('test');
window.getComputedStyle(test, null).getPropertyValue("background-color");
注意:屬性名不支援駝峰格式,IE6-8不支援此方法,需要使用下面的方法
5、getAttribute
getAttribute與getPropertyValue類似,有一點的差異是屬性名駝峰格式
例:
var test = document.getElementById('test');
window.getComputedStyle(test, null).getPropertyValue("backgroundColor");
注意:此方法只支援IE6-8
小結:
jQuery的CSS()方法,其底層運作就應用了getComputedStyle以及getPropertyValue方法,當我們使用原生的js開發時就可以透過以上方法取得元素的值。
以下是一個相容ie,firefox,chrome等瀏覽器的取得元素樣式的方法,可以套用到專案中
function getStyle(ele) {
var style = null;
if(window.getComputedStyle) {
style = window.getComputedStyle(ele, null);
}else{
style = ele.currentStyle;
}
return style;
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

JavaScript是一種廣泛應用於Web開發的程式語言,而WebSocket則是一種用於即時通訊的網路協定。結合二者的強大功能,我們可以打造一個高效率的即時影像處理系統。本文將介紹如何利用JavaScript和WebSocket來實作這個系統,並提供具體的程式碼範例。首先,我們需要明確指出即時影像處理系統的需求和目標。假設我們有一個攝影機設備,可以擷取即時的影像數
