欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS getStyle獲取最終樣式函數(shù)代碼

 更新時間:2010年04月01日 18:02:12   作者:  
定義一個id="flower"的div元素 并設置如上樣式,我們的目標就是通過javascript來獲取樣式的最終屬性

復制代碼 代碼如下:

#flower {
width:100px;
font-size:12px;
float:left;
opacity:0.5;
filter:alpha(opacity=50);
}

定義一個id="flower"的div元素 并設置如上樣式,我們的目標就是通過javascript來獲取樣式的最終屬性
<div id="flower" >...</div>
getStyle函數(shù):
這里用到了三個原型擴展
String.prototype.capitalize 這個方法是讓字符串首字母大寫
Array.prototype.contains 判斷數(shù)組中是否有指定成員
String.prototype.camelize 這個是讓"font-size" 字符串轉換成 "fontSize" 這樣的格式用來獲取樣式
復制代碼 代碼如下:

String.prototype.capitalize=function(){
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
}
Array.prototype.contains=function(A){
return (this.indexOf(A) >= 0);
}
String.prototype.camelize=function(){
return this.replace(/\-(\w)/ig,
function(B, A) {
return A.toUpperCase();
});
}
var css={
getStyle:function(elem,styles){
var value,
elem=document.getElementById(elem);
if(styles == "float"){
document.defaultView ? styles = 'float' /*cssFloat*/ : styles='styleFloat';
}
value=elem.style[styles] || elem.style[styles.camelize()];
if(!value){
if (document.defaultView && document.defaultView.getComputedStyle) {
var _css=document.defaultView.getComputedStyle(elem, null);
value= _css ? _css.getPropertyValue(styles) : null;
}else{
if (elem.currentStyle){
value = elem.currentStyle[styles.camelize()];
}
}
}
if(value=="auto" && ["width","height"].contains(styles) && elem.style.display!="none"){
value=elem["offset"+styles.capitalize()]+"px";
}
if(styles == "opacity"){
try {
value = elem.filters['DXImageTransform.Microsoft.Alpha'].opacity;
value =value/100;
}catch(e) {
try {
value = elem.filters('alpha').opacity;
} catch(err){}
}
}
return value=="auto" ? null :value;
}
}
css.getStyle("flower","width"); //100px;
css.getStyle("flower","font-size");//12px;
css.getStyle("flower","float");//left
css.getStyle("flower","opacity");//0.5

先回顧下基礎
style 標準的樣式!可能是由style屬性指定的!
runtimeStyle 運行時的樣式!如果與style的屬性重疊,將覆蓋style的屬性!
currentStyle 指 style 和 runtimeStyle 的結合!
style 內(nèi)聯(lián)的樣式
currentStyle 代表了在全局樣式表、內(nèi)嵌樣式和 HTML 標簽屬性中指定的對象格式和樣式
runtimeStyle 代表了居于全局樣式表、內(nèi)嵌樣式和 HTML 標簽屬性指定的格式和樣式之上的對象的格式和樣式
(FF中沒有currentStyle 和runtimeStyle)
getStyle(元素id,獲取屬性);
獲取元素style標簽內(nèi)的樣式
elem.style[styles] || elem.style[styles.camelize()]
支持傳入"font-size"的寫法
但這并不是最終的樣式 .
獲取最終樣式 有兩終辦法 一個是
document.defaultView.getComputedStyle //w3c的方法
還有就是通過 elem.currentStyle["..."] //ie下的方法
currentStyle 方法 需要將帶"-"字符的屬性 需要通過String.prototype.camelize轉換成ie可識別的屬性
復制代碼 代碼如下:

if(value=="auto" && ["width","height"].contains(styles) && elem.style.display!="none"){
value=elem["offset"+styles.capitalize()]+"px";
}

當 css中定義 元素的寬度為 auto時,并不能獲取元素的最終寬度是多少,我們可以用 offsetWidth 和 offsetHeight 獲取實際值
當然前提是要在元素為"可見"的狀態(tài)下!
復制代碼 代碼如下:

try {
value = elem.filters['DXImageTransform.Microsoft.Alpha'].opacity;
value =value/100;
}catch(e) {
try {
value = elem.filters('alpha').opacity;
} catch(err){}
}

這是獲取透明度的方法,ie中定義透明度和其他瀏覽器不同.需把通過濾鏡得到的opacity值/100。返回標準的opacity值(范圍0-1);

相關文章

  • HTML中使背景圖片自適應瀏覽器大小實例詳解

    HTML中使背景圖片自適應瀏覽器大小實例詳解

    這篇文章主要介紹了HTML中使背景圖片自適應瀏覽器大小實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • JS 音頻可視化插件Wavesurfer.js的使用教程

    JS 音頻可視化插件Wavesurfer.js的使用教程

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的音頻播放器插件,本文主要記錄它及其視覺效果插件Regions插件的使用方法,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • javascript Array對象使用小結

    javascript Array對象使用小結

    數(shù)組是一段線性分配的內(nèi)存,它通過整數(shù)去計算偏移并訪問其中的元素。數(shù)組是很快的數(shù)據(jù)結構,但不幸的是,Javascript并沒有像這種數(shù)組一樣的數(shù)據(jù)結構。
    2009-12-12
  • JavaScript實現(xiàn)電燈開關小案例

    JavaScript實現(xiàn)電燈開關小案例

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)電燈開關小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 如何防止JavaScript自動插入分號

    如何防止JavaScript自動插入分號

    JavaScript語言有一個機制:在解析時,能夠在一句話后面自動插入一個分號,用來修改語句末尾遺漏的分號分隔符。然而,由于這個自動插入的分號與JavaScript語言的另一個機制發(fā)生了沖突,即所有空格符都被忽略,因此程序可以利用空格格式化代碼
    2015-11-11
  • 解決layui的table.checkStatus失效問題

    解決layui的table.checkStatus失效問題

    這篇文章主要介紹了解決layui的table.checkStatus失效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 一分鐘學會JavaScript中的try-catch

    一分鐘學會JavaScript中的try-catch

    這篇文章主要給大家介紹了關于如何通過一分鐘學會JavaScript中try-catch的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Javascript Function對象擴展之延時執(zhí)行函數(shù)

    Javascript Function對象擴展之延時執(zhí)行函數(shù)

    這篇文章主要介紹 在js里面怎么延時執(zhí)行一個函數(shù)?
    2010-07-07
  • JS實現(xiàn)簡單的浮動碰撞效果示例

    JS實現(xiàn)簡單的浮動碰撞效果示例

    這篇文章主要介紹了JS實現(xiàn)簡單的浮動碰撞效果,類似于廣告懸浮圖片在屏幕上來回碰撞的效果,涉及javascript結合時間動態(tài)操作頁面元素屬性的相關技巧,需要的朋友可以參考下
    2017-12-12
  • 一個簡易的js圖片輪播效果

    一個簡易的js圖片輪播效果

    這篇文章主要為大家詳細介紹了一個簡易的js圖片輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論