2014-02-19 152 views
0

我正在製作一個簡單的javascript動畫,我使用Uncaught TypeError:無法讀取未定義的屬性'clientX'

clientX
來確定動畫對象的位置,但是我得到上面的錯誤。我在這裏做錯了什麼?

這裏是JS代碼:

(function() { 
    var pos = 0; 
    var timer; 
    var anim = { 
     time: 100, 
     obj: null, 
     init: function() { 
      anim.obj = document.querySelector('#ball'); 
      anim.obj.style.left = 0 + 'px'; 
      anim.cord(); 
      console.log(document.querySelector('.coordonnee').pageX); 

     }, 
     cord: function (e) { 
      if (parseInt(anim.obj.style.left) >= parseInt(document.body.offsetWidth - anim.obj.offsetWidth)) { 
       anim.animBack(); 
      } else { 
       anim.obj.style.left = parseInt(anim.obj.style.left) + 1 + 'px'; 
       timer = setTimeout(anim.cord, 0.5); 
      } 
      anim.myCord(anim.obj.event); 

     }, 
     animBack: function() { 
      if (parseInt(anim.obj.style.left) <= 0) { 
       anim.cord() 
      } else { 
       anim.obj.style.left = parseInt(anim.obj.style.left) - 1 + 'px'; 
       timer = setTimeout(anim.animBack, 0.5); 
      } 
     }, 
     myCord: function(e) { 
      var mx = e.clientX; 
      var y = e.clientY; 
      console.log(anim.obj.mx); 
     } 
    } 

    anim.init(); 
})(window); 

和HTML代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <title>JS animation</title> 
    <style type="text/css"> 
    #ball { 
     width: 50px; 
     height: 50px; 
     background: #ff45ce; 
     border-radius: 50%; 
     -webkit-border-radius: 50%; 
     position: relative; 
     left: 0; 
    } 
    </style> 
</head> 
<body> 
    <div id="ball" ></div> 
    <script type="text/javascript" src="js/animation.js"></script> 
</body> 
</html> 

預先感謝您爲您的幫助!

+0

您確定要將'anim.obj.event'而不是'e'傳遞給'myCord()'嗎? –

+0

我把e傳給myCord()但我有同樣的問題 –

+0

我的不好,我認爲這個函數是一個事件的回調。 –

回答

0

我在這個fiddle這裏嘗試了你的代碼。 這裏出現的錯誤是:TypeError: e is undefined in var mx = e.clientX;

這是因爲您的事件爲空或未定義。爲此重新定義你的邏輯。

+0

你提出了什麼解決方案。我整個早上都在尋找解決方案,但我沒有找到解決方案。 –

+0

我不確定,您函數中存在的所有事件似乎都是null或undefined。所以,我不知道,還有什麼可以用在這裏。 –

+0

你知道,我嘗試了一些我在這裏找到的東西,它運行良好,它沒有上面的錯誤。你能檢查這個[鏈接](http://jsfiddle.net/4hPhG/2/) –

0

我認爲你是路過的事件是空

anim.object.event is null in this function 
anim.myCord(anim.obj.event); 
相關問題