2013-09-15 4 views
2

Я новичок в этом, но я пытаюсь открыть div1 через 1 секунду и показать div2 через 5 секунд. На данный момент только div2 отображается через 1 секунду. Пожалуйста, помогите мне исправить javascript.Покажите div после x секунд и покажите еще один div после y секунд

Я также хотел бы знать, как скрыть div1 после отображения div2.

Мой код:

<div id="div1" style="visibility: hidden">Reveal Div 1 after 1 second</div> 
<div id="div2" style="visibility: hidden">Reveal Div 2 after 5 seconds</div> 

<script type="text/javascript"> 
function showIt() { 
    document.getElementById("div1").style.visibility = "visible"; 
} 
setTimeout("showIt()", 1000); // after 1 sec 

function showIt() { 
    document.getElementById("div2").style.visibility = "visible"; 
} 
setTimeout("showIt()", 5000); // after 5 secs 
</script> 

ответ

4

Вы не можете иметь 2 функции с тем же именем. Изменить вторую часть

function showIt2() { 
    document.getElementById("div2").style.visibility = "visible"; 
} 
setTimeout("showIt2()", 5000); // after 5 secs 

Demo: http://jsfiddle.net/W9YU5/

+0

совершенен! Как скрыть div1 при обнаружении div2? – N00B

+0

Просто добавьте 'function showIt2()' code' document.getElementById ("div1"). Style.visibility = "hidden"; ' –

+0

Вот обновленная демонстрация: http://jsfiddle.net/W9YU5/1/ –

0

Две проблемы.

  1. Каждая функция должна иметь четкое название.
  2. Вы вызываете функцию в SetTimeout как setTimeout(showIt, 5000); // after 5 secs

jsFiddle example

+0

Это отлично работает, но есть ли способ сделать его постепенным, а не изменчивым? –

+0

@LarsMartinson Вы можете использовать анимацию CSS или jQuery – j08691

Смежные вопросы