1

私は困惑しています。私がやりたいことは、マウスポインターがボックスに入るときはいつでも、ボックスの色を変え続けたいということです。ただし、マウスがボックスを離れると、ボックスの色の変化が止まります。私はJSを学んでおり、変数のスコープが私に苦労していることを認めなければなりません。

どうぞ:

 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;
    }




});

より明確にするために、マウスがボックスの外側にあるときに操作を実行したいと思います(両方のケースが同等であることを願っています:ボックスの外側はまだボックスです)。上記のコードは無限ループに入ります。

4

1 に答える 1

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 );
};
于 2011-06-14T21:07:41.800 に答える