Для последовательного запуска вещей вам необходимо выполнить второй элемент через некоторое время после завершения первого, выполнить третий элемент через некоторое время после завершения второго и т. Д. ...
ТолькоВаша функция sound () на самом деле занимает некоторое время, поэтому я бы предложил следующее:
function FindIt(image, id){
sound();
// set timer to start next action a certain time after the sound starts
setTimeout(function() {
bigger(image);
// set timer to start next action a certain time after making the image bigger
setTimeout (function() {
hide(image);
}, 1000); // set this time for how long you want to wait after bigger, before hide
}, 1000); // set the time here for how long you want to wait after starting the sound before making it bigger
}
FYI, возможности анимации в библиотеках, таких как jQuery или YUI, значительно упрощают подобные вещи.
Также, пожалуйста, не используйте такую конструкцию в вашем JS:
while (new Date() < ms){}
, которая блокирует браузер на такую задержку и очень недружелюбна для зрителя.Используйте setTimeout
для создания задержки.
Для справки, используя библиотеки анимации в jQuery, код jQuery для обработки щелчка по объекту и последующей его анимации в течение 2 секунд до большего размера, задержкав течение 1 секунды, а затем исчезнуть, выполняя всплывающее окно, следующим образом:
$("#rect").click(function() {
$(this).animate({height: 200, width: 400}, 2000).delay(1000).slideUp();
});
jQuery управляет очередью анимации и управляет настройкой всех таймеров и выполнением всех операций секвенирования и анимации за вас.Это намного проще программировать и дает очень хороший результат.
Вы можете увидеть, как это работает и играть с ним здесь: http://jsfiddle.net/kC4Mz/.