2011-06-14 42 views
1

我很難過。我想要做的是:每當我的鼠標指針進入一個框時,我想不斷改變框的顏色。但是,當鼠標離開盒子時,我希望盒子的顏色停止變化。我必須承認,我正在學習JS,變量的範圍給了我很大的困難。while(mouse in some bounding box)do something; - IN Javascript

在這裏你去:

var t = true; 
Crafty.addEvent(this,Crafty.stage.elem,"mousemove",function(e){ 
    if(e.clientX<294) 
    { 
     console.log("Left edge"); 
     while(t==true){do something} 

    } 
    else if(e.clientY<10) 
    { 
     console.log("Top Edge"); 


    } 
    else if(Math.abs(e.clientX-1084)<10) 
    { 

     console.log("Right Edge"); 


    } 
    else if(Math.abs(e.clientY-600)<10) 
    { 
     // console.log("Bottom Edge"); 


    } 
    else 
    { 
     t = false; 
    } 




}); 

更清楚,我想,當鼠標是一個盒子(我希望這兩種情況下是相同的:從側箱仍然是一個箱)外執行操作。上面的代碼進入無限循環。

+1

讓我們看看您到目前爲止 – Gerrat 2011-06-14 21:01:23

回答

4

是否這樣? http://jsfiddle.net/2eWkN/

var box = document.getElementById('box'), 
    changeColor = function() { 
     var r = ~~(Math.random() * 255), 
      g = ~~(Math.random() * 255), 
      b = ~~(Math.random() * 255); 
     box.style.backgroundColor = "rgb(" + r + ',' + g + ',' + b + ')'; 
    }, 
    intvl; 

box.onmouseover = function() { 
    intvl = setInterval(changeColor, 50); 
}; 
box.onmouseout = function() { 
    clearInterval(intvl); 
}; 
+1

爲真棒癲癇測試+1。如果這不會引發癲癇發作,那什麼都不會。 – stefgosselin 2011-06-14 21:12:58

+0

@stefgosselin:沒有開玩笑。我應該發佈警告! – user113716 2011-06-14 21:14:48