中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用JavaScript非行間樣式怎么獲取函數

發布時間:2021-03-17 15:07:12 來源:億速云 閱讀:178 作者:Leah 欄目:web開發

這篇文章給大家介紹使用JavaScript非行間樣式怎么獲取函數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

行間樣式:元素內部用style定義的樣式,如:<div ></div>

非行間樣式:在<style></style>內通過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" > 
      寬 
    </div> 
  </body> 
  <script type="text/javascript" > 
    window.onload =function(){ 
      var oDiv1=document.getElementById('div1'); 
      oDiv1.onclick=function(){ 
        oDiv1.style.width=200+'px'; 
      } 
    } 
  </script> 
</html>

我在頁面放了一個方塊,紅底黑邊,想通過點擊該方塊讓他的寬度變為200px,看一下結果——沒有任何反應,也沒有報錯。

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

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

這行代碼有問題。

打印一下這個這個變量:

alert(oDiv1.style.Width);

雖然不報錯,但是顯示空白,即使用變量賦值之后任然無法獲取這個值,真正的原因是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>

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

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

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

getComputedStyle(obj, false)——獲取非行間(計算后的樣式)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>

把他封裝一下寫成一個公用函數:

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

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

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

關于使用JavaScript非行間樣式怎么獲取函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

游戏| 德钦县| 寿宁县| 志丹县| 枞阳县| 保靖县| 昌江| 康乐县| 定结县| 隆回县| 贺兰县| 工布江达县| 黔东| 新蔡县| 蕲春县| 灌南县| 灵武市| 莱芜市| 普兰店市| 墨脱县| 定襄县| 嘉黎县| 寿阳县| 肇源县| 庄浪县| 西峡县| 壶关县| 玉田县| 济宁市| 庄河市| 沿河| 凉山| 石景山区| 莆田市| 临邑县| 横峰县| 天等县| 临沧市| 延长县| 惠来县| 衡山县|