0

我为三张图片分别制作了工具提示。我想在定时间隔内显示工具提示,比如第一个工具提示显示 2 秒,第二个间隔显示第二个工具提示,依此类推。

例如,可以使用此功能完成

function cycle(id) {
    var nextId = (id == "block1") ? "block2": "block1";
    $("#" + id)
        .delay(shortIntervalTime)
        .fadeIn(500)
        .delay(longIntervalTime)
        .fadeOut(500, function() {cycle(nextId)});
}

现在我想要的是在每个图像上发生鼠标悬停动作时停止循环功能并显示相应的工具提示。当鼠标再次离开时,循环功能再次触发。

4

1 回答 1

0

如果我正确理解一切,请尝试此代码。如果您将图像悬停,Tt 将停止该过程,如果您离开该图像,则继续。如果您像 jquery 的 fadeOut()、slideIn()、... 函数那样实现自定义函数,则 stop() 函数将适用于自定义函数。

  $('#' + id)
.fadeIn(500, function () {
   var img = $(this).find('img'),
       self = $(this),
       fadeOut = true;

   img.hover(function () {
                fadeOut = false;                    
            }, 
            function () {
                window.setTimeout(function () {
                    self.fadeOut(500);
                }, 2000);
            }
      );

    window.setTimeout(function () {
        if (fadeOut === false) {
            return;
        }
        self.fadeOut(500);
    }, 2000);
});​
于 2012-11-09T11:50:09.363 回答