最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS非行間樣式獲取函數(shù)的實(shí)例代碼

 更新時(shí)間:2018年06月05日 10:46:26   作者:糯米控  
這篇文章主要介紹了JS非行間樣式獲取函數(shù)的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

行間樣式:元素內(nèi)部用style定義的樣式,如:<div style="width:200px;"></div>

非行間樣式:在<style></style>內(nèi)通過css定義的樣式

先看一段出問題的代碼

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
  </head> 
  <style> 
    div{ 
      height: 100px; 
      width: 100px; 
      border: 2px solid black; 
      background: red; 
    } 
  </style> 
  <body> 
    <div id="div1" style=""> 
      寬 
    </div> 
  </body> 
  <script type="text/javascript" > 
    window.onload =function(){ 
      var oDiv1=document.getElementById('div1'); 
      oDiv1.onclick=function(){ 
        oDiv1.style.width=200+'px'; 
      } 
    } 
  </script> 
</html> 

我在頁面放了一個(gè)方塊,紅底黑邊,想通過點(diǎn)擊該方塊讓他的寬度變?yōu)?00px,看一下結(jié)果——沒有任何反應(yīng),也沒有報(bào)錯(cuò)。

在事件中添加alert('a');有反應(yīng),說明onclick事件被觸發(fā)了,那么就是

oDiv1.style.Width=200+'px'; 

這行代碼有問題。

打印一下這個(gè)這個(gè)變量:

alert(oDiv1.style.Width); 

雖然不報(bào)錯(cuò),但是顯示空白,即使用變量賦值之后任然無法獲取這個(gè)值,真正的原因是style只能獲取行間樣式,試一下:

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
  </head> 
  <style> 
     
  </style> 
  <body> 
    <div id="div1" style="height: 100px; 
      width: 100px; 
      border: 2px solid black; 
      background: red;"> 
      寬 
    </div> 
  </body> 
  <script type="text/javascript" > 
    window.onload =function(){ 
      var oDiv1=document.getElementById('div1'); 
      oDiv1.onclick=function(){ 
        oDiv1.style.width=200+'px'; 
      } 
    } 
  </script> 
</html> 

可以確定確實(shí)是行間樣式與非行間樣式的問題,實(shí)際上不可能把所有樣式都寫在行間。

要解決這個(gè)問題,需要引入兩個(gè)元素屬性——currentStyle和getComputedStyle(obj, false)

currentStyle——獲取非行間(當(dāng)前樣式)IE瀏覽器專屬,chrome和FF不兼容。

getComputedStyle(obj, false)——獲取非行間(計(jì)算后的樣式)IE不兼容。

<script type="text/javascript" > 
  window.onload =function(){ 
    var oDiv1=document.getElementById('div1'); 
    oDiv1.onclick=function(){ 
            //FF、chrome 
            alert(getComputedStyle(oDiv1, false).width); 
            //IE 
            alert(oDiv1.currentStyle.width); 
    } 
  } 
</script> 

把他封裝一下寫成一個(gè)公用函數(shù):

//obj:哪個(gè)元素 
//attr:那個(gè)樣式 
function getStyle(obj,attr){ 
  if(obj.currentStyle){ 
    //IE 
    return obj.currentStyel[attr]; 
  }else{ 
    //FF 
    return getComputedStyle(obj, false)[attr]; 
  } 
} 

通過判斷obj.currentStyle是否為真來判斷當(dāng)前瀏覽器為IE還是其他。

注意:.width的寫法可以寫成['width']

總結(jié)

以上所述是小編給大家介紹的JS非行間樣式獲取函數(shù)的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

崇文区| 广西| 特克斯县| 襄汾县| 昭通市| 西充县| 方山县| 梁河县| 密山市| 隆回县| 洛宁县| 瓦房店市| 宁陵县| 松滋市| 乌兰察布市| 尚义县| 芜湖县| 宁强县| 垫江县| 滁州市| 甘南县| 大足县| 密云县| 辽源市| 陆川县| 康定县| 阿拉善右旗| 金湖县| 历史| 巴林右旗| 灵宝市| 固原市| 尚义县| 铅山县| 连云港市| 克拉玛依市| 阳曲县| 广汉市| 康保县| 桂林市| 石景山区|