2016-10-03 73 views
0

當我試圖將圖像移動到中心時,瀏覽器可以顯示錯誤無法讀取屬性寬度爲null。我試圖將屏幕的寬度除以2,我不能說明爲什麼會顯示錯誤。 custom.js:6未捕獲TypeError:無法讀取屬性'寬度'空

var mobile = document.getElementById("mobile"); 
var monitor = document.getElementById("monitor"); 
var tab = document.getElementById("tab"); 
var header = document.getElementById("header"); 
var position = (screen.width - monitor.width)/2; 
monitor.style.left = position+"px;"; 
function initScroll(){ 
    if(window.pageYOffset >500){ 
    mobile.style.left = "300px"; 
    tab.style.right = "250px"; 
    header.style.height = "60px"; 
    header.style.fontSize = "25px"; 
    }else{ 
    header.style.height = "60px"; 
    header.style.fontSize = "25px"; 
    mobile.style.left = "0px"; 
    tab.style.right = "0px"; 
    } 
} 
window.addEventListener("scroll",initScroll); 
*{padding: 0;margin: 0;font-family:arial;} 
#header{height:100px;background-color: #354458;font-size: 40px;color:#fff; text-align:center;line-height:2.5; 
position:fixed; width:100%;z-index:20; 
    -moz-transition: 2s height, 2s font-size; 
    -o-transition: 2s height, 2s font-size; 
    -webkit-transition: 2s height, 2s font-size; 
    transition: 2s height, 2s font-size; 
} 
#banner{background: #3a9ad9;height:400px;position:fixed;width:100%; 
top:100px;font-size:50px; text-align: center; color 
    :#fff;z-index:10; 
} 
#banner > * { 
    margin-top:30px; 
} 
#content{ 
    top:500px; 
    position:relative; 
    height:1000px; 
    padding-top:200px; 
    background-color: #fff; 
    z-index:15; 
} 
#mobile{ 
    position: absolute; 
    left: 0; 
    z-index: 15; 
    top: 470px; 
    -moz-transition: 2s left; 
    -o-transition: 2s left; 
    -webkit-transition: 2s left; 
    transition: 2s left; 
} 
#monitar{position: relative;} 
#tab{ 
    position: absolute; 
    right: 0; 
    z-index: 15; 
    top: 385px; 
    -moz-transition: 2s right; 
    -o-transition: 2s right; 
    -webkit-transition: 2s right; 
    transition: 2s right; 

} 
<html> 
<head> 
    <title>Java script Scroller</title> 
    <meta charset="utf-8"/> 
    <link rel="stylesheet" type="text/css" href="./css/style.css"/> 
    <script src="./js/custom.js"></script> 
</head> 
<body> 
     <div id="wrapper"> 
       <div id="header">Header</div> 
       <div id="banner"> 
        <h1>My Animation</h1> 
        <h2>First collapsable header</h2> 
        <h3>Apurva Kinkar</h3> 
       </div> 
       <div id="content"> 
        <img id="mobile" src="./img/1.jpg" /> 
        <img id="monitar" src="./img/2.png" /> 
        <img id="tab" src="./img/3.jpg" /> 
       </div> 
     </div> 
</body> 
</html> 
+0

你的img-id被稱爲「monitar」。有可能是一個錯字 –

+0

我改變,但它顯示相同的錯誤 –

回答

1

你有一個錯字錯誤與<img>聲明,它必須是monitormonitar

<img id="monitar" src="./img/2.png" /> 

更改本作,

<img id="monitor" src="./img/2.png" /> 

希望這有助於!

0

首先,您的圖片ID拼寫錯誤。

更改此設置: -

<img id="monitar" src="./img/2.png" /> 

<img id="monitor" src="./img/2.png" /> 

改變之後,你仍然會得到相同的錯誤。這是因爲,當您的js代碼運行時,img元素仍未添加到DOM。 爲此,請在document.ready函數上運行javascript代碼(當DOM中存在帶有「monitor」標識的img時)。

以下是使用jQuery的document.ready()函數的working example。如果你不想使用jQuery,你也可以使用this example

+0

Thanx,但我不能說明爲什麼使用(函數(){} –

+0

它基本上相當於'window.onload'。你可以在[鏈接](http://stackoverflow.com/questions/9899372/pure-javascript-equivalent-to-jquerys-ready-how-to-call-a-function-when-the) –

+0

@ApurvaKinkar我編輯了我的答案讓你明白更好。看看:) –

相關問題