正在运行的文本:暂停,停止

时间:2012-05-19 15:35:48

标签: javascript settimeout setinterval

我有<p>元素:

<p id="news_title">Text goes here</p>

我使用此JavaScript运行文本:

(function(){
var j = 0;
var el = document.getElementById("news_title");
var interval;
function runEngine(){
    interval = setInterval(function(){
        if (j===200){
            j=-200;
        }
        el.style.left = j + "px";
        j++;
    },20);
}

window.onload = function(){
    runEngine();
};
})();

标记的脚本运行良好,但我想暂停文本onmouseoveronmouseout让它继续运行。另外,onclick我想永远停止它。

el.onmouseover = function(){
   clearInterval(interval);
};  // pausing , working nicely

el.onmouseout = function(){
    runEngine();
};  // also working

onclick无效。即使我清除了间隔,onmouseout处理程序也会导致文本再次运行。我该如何防止这种情况?

1 个答案:

答案 0 :(得分:2)

点击后,设置一个标志。然后检查onmouseout处理程序中的标志:

var clicked = false;

el.onclick = function() {
    clicked = true;
};

el.onmouseout = function() {
    if (!clicked) {
        runEngine();
    }
};