国产探花免费观看_亚洲丰满少妇自慰呻吟_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的方法

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

圖片精選

主站蜘蛛池模板: 凌海市| 自贡市| 德庆县| 喀喇| 清徐县| 久治县| 朔州市| 宽城| 兴文县| 崇文区| 南投县| 华宁县| 广宗县| 将乐县| 科技| 历史| 马尔康县| 儋州市| 达州市| 奉贤区| 珲春市| 江源县| 定日县| 霍邱县| 台江县| 祁门县| 宝鸡市| 堆龙德庆县| 黑龙江省| 衡阳市| 区。| 时尚| 元阳县| 大竹县| 凤山县| 迭部县| 德阳市| 宕昌县| 宁都县| 万盛区| 桐梓县|