自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Javascript實現(xiàn)一個獲取元素樣式的函數(shù)getStyle

開發(fā) 后端
在JavaScript中,為便于操作,現(xiàn)在的很多js-lib中都對此做了封裝,但很多時候我們并不需要引入什么lib,我們需要的僅僅是一個getStyle函數(shù)來獲取元素的當(dāng)前樣式定義。

元素的CSS樣式,除了包括內(nèi)聯(lián)的(即通過style屬性加上的)樣式定義外,還有頁面嵌入的css和外部引入的css兩種方式。但在JS中通過el.style.xxx只能獲取的內(nèi)聯(lián)的樣式屬性,這就存在比較大的局限性。好在瀏覽器都提供了另外的方式來獲取以其它方式定義的樣式屬性,在IE中有currentStyle、FF等w3c標(biāo)準(zhǔn)的瀏覽器中有g(shù)etComputedStyle。

參考了幾個JS-Lib的代碼,決定實現(xiàn)一個簡化版的getStyle函數(shù)。該函數(shù)目標(biāo)為:滿足大多數(shù)需要、跨瀏覽器、代碼簡潔、性能優(yōu)良。本著這幾點要求,本人花了一個小時的時間才搞定,主要利用了“JS邏輯運(yùn)算符特性、代碼"編譯",函數(shù)的即時執(zhí)行”幾個小技巧,寫到這里,以備以后使用,如果能對哪位朋友有幫助,那當(dāng)然更好。

程序代碼
var getStyle=function(){
var f=document.defaultView;
return new Function('el','style',[
"style.indexOf('-')>-1 && (style=style.replace(/-(\\w)/g,function(m,a){return a.toUpperCase()}));",
"style=='float' && (style='",
f ? 'cssFloat' : 'styleFloat',
"');return el.style[style] || ",
f ? 'window.getComputedStyle(el, null)[style]' : 'el.currentStyle[style]',
' || null;'].join(''));
}();

//使用示例:
var el=document.getElementById('test');
getStyle(el,'line-height');
getStyle(el,'color');
getStyle(el,'float');

【編輯推薦】

  1. JavaOne 2009第三天:微軟與Sun/Oracle攜手并進(jìn)
  2. 開發(fā)高可移植性J2ME的軟件
  3. Java虛擬機(jī)(JVM)中的內(nèi)存設(shè)置詳解
責(zé)任編輯:王觀 來源: 動態(tài)網(wǎng)站制作指南
相關(guān)推薦

2018-11-09 10:50:24

JavaScript前端

2018-11-08 16:18:07

JavaScript前端

2018-09-18 10:11:21

前端vue.jsjavascript

2015-05-25 15:06:28

JavaScript函數(shù)式編程

2021-06-25 10:38:05

JavaScript編譯器前端開發(fā)

2011-12-26 16:39:43

局部函數(shù)

2022-02-10 07:41:02

JavaScriponce函數(shù)

2017-03-15 08:43:29

JavaScript模板引擎

2020-10-16 08:26:07

JavaScript開發(fā)技術(shù)

2017-03-20 17:59:19

JavaScript模板引擎

2020-11-30 06:20:13

javascript

2022-10-21 14:21:46

JavaScript筆記技能

2011-05-25 14:34:26

javascript

2021-06-16 17:46:55

函數(shù)指針結(jié)構(gòu)

2015-03-10 11:21:44

JavaScript組JavaScript

2014-02-14 09:37:01

JavascriptDOM

2017-05-02 11:30:44

JavaScript數(shù)組惰性求值庫

2020-06-11 08:48:49

JavaScript開發(fā)技術(shù)

2021-04-30 08:22:36

異步求和函數(shù)

2022-08-24 14:14:58

JavaScript函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號