js獲取style屬性值的問題
這節(jié)課里面老師說用obj.style.attr獲取obj的屬性attr,這種方法必須是在屬性attr通過內(nèi)嵌在標(biāo)簽里面才能讀取到,是這個(gè)意思嗎,比如:
<style?type?=?"text/css">
div{
????width:200px;
????height:60px;
????background:?yellow;
}
</style>
<script?type?=?"text/javascript">
????var?obj?=?document.getElementById("div1");
????obj_width?=?obj.style.width;
</script>
<body>
????<div?id?=?"div1"></div>
</body>按照老師 的意思,是不是就是說,上面代碼的obj_width = obj.style.width;
這句是無效的,獲取不到div1的width值,因?yàn)閖s代碼無法獲取CSS里面的樣式,只能獲取內(nèi)嵌在標(biāo)簽里面的CSS樣式,所以如果想要以這種辦法獲取目標(biāo)屬性,必須把目標(biāo)想要被獲取的CSS屬性寫在這里面:<body><div id = "div1" style = "width:200px"></div></body>只有這樣才能用obj.style.attr獲取相應(yīng)的屬性呢?
但是在前一節(jié)課中,CSS定義在<style></style>里,用obj.style.attr還是能獲取到相應(yīng)的屬性啊,為什么呢?好亂啊。。。
上一節(jié)課的代碼,完全可以跑起來啊,并不會(huì)出現(xiàn)obj.type.attr獲取不到CSS里面樣式的情況,為什么呢?
<head>
????<meta?charset="UTF-8">
????<title>Title</title>
????<style?type="text/css">
????????*{
????????????margin:0;
????????????padding:0;
????????}
????????ul,li{
????????????list-style:?none;
????????}
????????ul?li{
????????????width:?200px;
????????????height:?100px;
????????????background:?yellow;
????????????margin-bottom:?20px;
????????????filter:alpha(opacity:30);
????????????opacity:?0.3;
????????}
????</style>
????<script?type="text/javascript">
????????window.onload?=?function?()?{
????????????var?aLi?=?document.getElementsByTagName('li')
????????????for(var?i?=?0;?i<aLi.length;?i++){
????????????????aLi[i].timer?=?null;
????????????????aLi[i].onmouseover?=?function?()?{
????????????????????move(this,400);
????????????????};
????????????????aLi[i].onmouseout?=?function?()?{
????????????????????move(this,200);
????????????????}
????????????}
????????};
????????function?move(obj,target)?{
????????????clearInterval(obj.timer);
????????????obj.timer?=?setInterval(function?()?{
????????????????var?speed?=?(target?-?obj.offsetWidth)/8;
????????????????speed?=?speed>0??Math.ceil(speed):Math.floor(speed);
????????????????if?(obj.offsetWidth?==?target){
????????????????????clearInterval(obj.timer);
????????????????}else?{
????????????????????obj.style.width?=?obj.offsetWidth?+?speed?+?'px';
????????????????}
????????????},30)
????????}
????</script>
</head>
<body>
<ul>
????<li></li>
????<li></li>
????<li></li>
</ul>
</body>
</html>

求高人指點(diǎn),不勝感激!
2016-05-27
恩恩,應(yīng)該是這樣吧
2016-09-27
親,我們前面的課程,都是用element.style.xxxxxx =xxxxx; ——這個(gè)是設(shè)置,不是讀取嗷
2016-05-26
因?yàn)樵趕tyle標(biāo)簽里寫的width屬性值為200,你讀取的時(shí)候只能讀取到200px這個(gè)值,而寫在內(nèi)置標(biāo)簽里,才可以隨意讀取和寫入,可以變化
2016-05-25
你說的是啥????????