2011-08-09 4 views
1

Я хочу, чтобы div появлялся в течение 10 секунд за раз, каждые 1 минуту. Итак, в начале минуты div должен появиться в течение 10 секунд, уйти, а затем снова появиться через 50 секунд и снова и снова.Вопрос о setInterval function

Единственное, что мне удалось выяснить, это как это сделать через 10 секунд.

$(function() { 

    setInterval(function() { 
     hideMsg() 
    }, 10000); 

    function hideMsg() { 
     $('#header p').css('display', 'none'); 
    }  
}); 

ответ

3
$(function() { 

    showMsg();  
}); 
function showMsg() 
{ 
    $('#header p').css('display', ''); 
    setTimeout(hideMsg, 10000); 
} 
function hideMsg(){ 
    $('#header p').css('display', 'none'); 
    setTimeout(showMsg, 60000); 
} 

Это он,

showMsg покажет сообщение конец тайм-аут будет выполнять hideMsg после 10 сек, то hideMsg скроют сообщ и тайм-аут будет выполнять showMsg за 1 минуту.

+0

Я тоже думал об этом, но он повторяет сообщение скрыть 6 раз, прежде чем он его покажет, что может быть или не быть проблемой. : P –

+0

он просто покажет его один раз, потому что тайм-аут будет выполняться только один раз. Проверьте свой код javascript, возможно, вы скопировали функцию где-то этот код будет работать как написанный 100% –

+0

. А я вижу ... Я мог бы поклясться, что эти вызовы setTimeout были вне функций show/hide: P –

1

использование SetTimeout функция()

$(function() { 

    setInterval(function() { 
     hideMsg() 

    }, 10000); 

    function showMsg(){ 

    } 

    function hideMsg() { 
     $('#header p').css('display', 'none'); 
     setTimeout(function(){ 
       $('#header p').css('display', 'block'); 
     }, 50000); 
    }  
}); 
+0

'setTimeout' нуждается в задержке. –

+0

вам нужно добавить 50000 в функцию setTimeout –

+0

добавлено до минуты уже :) – genesis

1
function show(){ 
    // whatever your show code is 

    // hide after 10 seconds 
    setTimeout(function() { 
        // whatever your hide code is 
       }, 10000); 
} 

// invoke show every 60 seconds - show will hide itself after 10 seconds 
var handle = window.setInterval(function() { show(); }, 60000); 
+0

Я ценю быстрые ответы, спасибо большое – kdub

1
var messageTimer = setTimeout(showMsg, 50000); 
function showMsg() { 
    $('#header p').show(); 
    clearTimeout(messageTimer); 
    messageTimer = setTimeout(hideMsg, 10000); 
} 
function hideMsg(){ 
    $('#header p').hide(); 
    clearTimeout(messageTimer); 
    messageTimer = setTimeout(showMsg, 50000); 
} 
+0

Я ценю быстрые ответы, спасибо большое – kdub

0

Что Abou это?

$(function() { 
     var count = 0; 
     setInterval(function() { 
      ++count % 6 ? $('#header p').hide() 
         : $('#header p').show(); 
     }, 10000); 
    }); 
0

Требуется, чтобы придумать что-то оригинальное, используя интервал таймера:

$(document).ready(function() { 
    var hideCnt = 0; // 10 second interval cntr 
    setInterval(function() { 
     ++hideCnt; 
     if (hideCnt >= 5) { 
      $('#header p').toggle(); 
     } 
     if (hideCnt >= 6) { 
      hideCnt = 0; 
     } 
    }, 10000); 
}); 

И скрипку, которая показывает интервал работу решения таймера: http://jsfiddle.net/jfriend00/KReau/.

А вот более традиционный вкус:

$(document).ready(function() { 
    function show() { 
     $('#header p').show(); 
     setTimeout(hide, 50000); // hide after 50 seconds 
    } 
    function hide() { 
     $('#header p').hide(); 
     setTimeout(show, 10000); // show after 10 seconds 
    } 
    show(); 
}); 
Смежные вопросы