国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS getStyle獲取最終樣式函數代碼

2024-05-06 14:10:45
字體:
來源:轉載
供稿:網友

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

定義一個id="flower"的div元素 并設置如上樣式,我們的目標就是通過javascript來獲取樣式的最終屬性
<div id="flower" >...</div>
getStyle函數:
這里用到了三個原型擴展
String.prototype.capitalize 這個方法是讓字符串首字母大寫
Array.prototype.contains 判斷數組中是否有指定成員
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 內聯的樣式
currentStyle 代表了在全局樣式表、內嵌樣式和 HTML 標簽屬性中指定的對象格式和樣式
runtimeStyle 代表了居于全局樣式表、內嵌樣式和 HTML 標簽屬性指定的格式和樣式之上的對象的格式和樣式
(FF中沒有currentStyle 和runtimeStyle)
getStyle(元素id,獲取屬性);
獲取元素style標簽內的樣式
elem.style[styles] || elem.style[styles.camelize()]
支持傳入"font-size"的寫法
但這并不是最終的樣式 .
獲取最終樣式 有兩終辦法 一個是
document.defaultView.getComputedStyle //w3c的方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 巴彦淖尔市| 丰镇市| 民乐县| 闽清县| 铅山县| 彭泽县| 盐源县| 如东县| 遵化市| 略阳县| 永安市| 连城县| 荔浦县| 彭水| 昌乐县| 云南省| 天镇县| 温州市| 米易县| 漳州市| 玉山县| 汪清县| 武定县| 那坡县| 南充市| 达尔| 安阳县| 房山区| 黔江区| 阿克苏市| 彰武县| 大厂| 二连浩特市| 九龙县| 修武县| 康马县| 五指山市| 连城县| 北流市| 隆化县| 鄱阳县|