文本淡出循环页面加载后?

时间:2016-05-10 12:46:00

标签: javascript jquery html css

标题有点模糊,抱歉。

我想说三个div(只是其中的一些文本)来运行一次循环。

这将是页面加载。播放完毕后,将最终显示该网站。

我希望这只发生一次,当你第一次来到网站,因为不必一次坐下来会很烦人。由于用户将不断返回页面,因此将会打开。

在我发布这篇文章之前,我再看了一眼,找到了这个Jsfiddle

http://jsfiddle.net/hungerpain/NMSpx/1/

这是来自Jsfiddle的JavaScript

function tick() {
    var $obj = $(".major_data .commitment_box .commitment");
    $obj.first().fadeIn().delay(1000).fadeOut(function () {
        $obj.first().insertAfter($obj.last());
        tick();
    });
}
tick();

它越来越少我想要但是它停在最后一个div并且只播放一次。

我觉得我可能必须创建一个单独的页面,并在新页面而不是最后一个div中加载JavaScript。这样我就可以在没有动画的情况下将用户链接回这个页面了吗?

2 个答案:

答案 0 :(得分:2)

  

我希望这只在您第一次来到网站时发生一次   因为不止一次地坐下来会很烦人。如   用户将不断返回到此页面。

这部分内容并未包含在已接受的答案中。为了只播放一次动画,即使在刷新页面之后,只需set a cookie并在播放动画之前阅读它:

var i = 0;
function tick() {
    if (i > 3) return;
    var $obj = $(".major_data .commitment_box .commitment");

    $obj.first().fadeIn().delay(1000).fadeOut(function () {
        $obj.first().insertAfter($obj.last());
        i++;
        tick();
    });
}

if (typeof Cookies.get('animation_played') == 'undefined') {
    tick();
    Cookies.set('animation_played', true);
}

答案 1 :(得分:1)

要使其循环特定次数,只需在tick()函数中添加一个计数器:

var i = 0;
function tick() {
    if (i > 3) return;
    var $obj = $(".major_data .commitment_box .commitment");

    $obj.first().fadeIn().delay(1000).fadeOut(function () {
        $obj.first().insertAfter($obj.last());
        i++;
        tick();
    });
}
tick();