1

私は、たとえば 10 秒間タッチ イベントがない場合にスライドショーを表示する必要があるモバイル サイトで作業しています。いろいろやってみましたが、なかなか手に入りません。

これは私がこれまでに持っているコードです:

window.setTimeout(function(){
    $('#slideshow').show();
    $('#slideshow').animate({
        opacity:1   
    }, 800);
}, 3000);

$('#slideshow').click(function(){
    //alert('helo');
    $('#slideshow').animate({
        opacity:0   
    }, 800, function(){
        $('#slideshow').hide();
    });

});

これは機能しますが、非アクティブ状態が何秒も続いた後、ショーと不透明度のアニメーションをトリガーする必要があります。誰でもこれを行ったことがあり、迅速な解決策があります。ありがとう

更新されたコード:

    var waiting = window.setTimeout(function(){
                $('#slideshow').show();
                $('#slideshow').animate({
                    opacity:1   
                }, 800);
            }, 3000);

    var activity = $(window).click();

    $(document).on('activity', function() { 
        clearTimeout(waiting); 
            waiting = window.setTimeout(function(){
                $('#slideshow').show();
                $('#slideshow').animate({
                    opacity:1   
                }, 800);
            }, 3000);
    });

    $('#slideshow').click(function(){
        $('#slideshow').animate({
            opacity:0   
        }, 800, function(){
            $('#slideshow').hide();
        });

    });

これはまだ完全には機能していません...最初は機能します。スライドショーは表示されるまで 3 秒待機し、何らかのアクティビティがある場合は継続的にリセットされますが、スライドショーが表示されてから削除された場合、再表示されません...?

任意のアイデアありがとう

4

1 に答える 1

2

「アクティビティ」を定義し、「アクティビティ」がトリガーされるたびに setTimeout をクリアしてから、再度開始します。

var waiting = window.setTimeout(function(){ });
$(document).on('activity', (function() { 
    clearTimeout(waiting); 
    waiting = window.setTimeout(function(){ });
});
于 2013-03-05T16:01:17.523 に答える