用js控制css屬性


在用js控制css屬性時,行內css屬性可以任意控制,但若是在<style></style>中寫的css屬性,均不能用alert讀取,但是賦值卻有幾種現象,

第一種:無法讀取,能直接賦值

如下:

<!DOCTYPE html>
<head>
<title>新建網頁</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content=" "/>
<style>
	div{
		width:300px;
		height:300px;
		border:1px solid blue;
	}	
</style>
</head>
<body>
	<div>
                <p>
			12345
		</p>
	</div>
</body>
<script>
	var div=document.getElementsByTagName('div')[0];
	alert(div.style.width);
	div.style.width='600px';
	</script>
</html>   

第二種:無法進行計算后的賦值,

div.style.width=parseInt(div.style.width)+100+'px';

這行代碼不起作用

解決方式:這種情況下就要用到obj.currentStyle和getComputedStyle()這兩個函數來先讀取到width的值,然后進行計算,再賦值。

<script>
function getStyle(obj,attr)
{
	return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,null)[attr];
}
function t1()
{
	var div=document.getElementsByTagName('div')[0];
	div.style.width=parseInt(getStyle(div,'width'))+5+'px';//兩個方法獲取對象為只讀
}
</script>

 

第三種:先直接賦值,然后進行計算后賦值,這樣能夠兩次都賦值

即:

<script>
	var div=document.getElementsByTagName('div')[0];
	alert(div.style.width);
	div.style.width='600px';
	alert('。。。');
	div.style.width=parseInt(div.style.width)+100+'px';
</script>

這是因為在前一次賦值計算中:div.style.width='600px';已經給他賦了行內css值,所以后面一個進行計算后賦值時可以讀取到並賦值。

已解決~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM