使用jQuery編寫效果就像叫外賣;使用js實現就行自己在家里開火。此處有表情,哭臉。。。。。。。。。。。。
js獲取html元素寬高有兩種方法:
obj.style.width;
obj.offsetWidth;
用alert()方法彈出時第一種是獲取不到寫在樣式表里的值也就是(#div{width:200px}),只能獲取到寫在行內的寬高;使用js為html元素設置寬時使用obj.style.width。例如,obj.style.width = 500+'px';
第二種方法是可以獲取html元素寬高的值,無論寫在那里。
使用obj.offsetWidth;獲取到的是容器當前大小,包括邊(border)和內填充(padding)的值。
js本身而言不是寫在行內style中的屬性都不能通過id.style.atrr來獲取。但是為了保證樣式、行為、布局分離,嚴格不要把樣式寫在行內。所以獲取不是行內的style的屬性就需要自己編寫相應的方法。
使用getStyle()來處理獲取樣式表里的屬性值。
function getStyle(obj,attr){
if(obj.currentStyle){ //ie瀏覽器
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr]; //火狐瀏覽器 }
};
直接調用這個函數就可以了。
例如,改變一個id="div"的div寬度大小;
var odiv = document.getElementById('div');
odiv .style.width = parseInt(getStyle(odiv,'width'))-1+'px';//改變寬度
odiv .style.width = parseInt(getStyle(odiv,'fontSize'))+1+'px'; //改變字體的大小