2015-02-14 4 views
0

Как добавить паузу в 3 секунды перед гладкой прокруткой? Пользователь нажмет на кнопку, затем будет спать 3 секунды, после чего будет прокручиваться гладкий свиток.Функция сна перед гладкой прокруткой

$(function() { 
    $('a[href*=#]:not([href=#])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html,body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 
+0

Пожалуйста, используйте блок кода, а не код цитаты для образца кода в своем сообщении. Спасибо –

+0

@ IsabelHM Отредактировано, спасибо! – whites

+0

'setTimeout (function() {... ваш код для анимации здесь ...}, 3000);' –

ответ

1

Вы можете добавить SetTimeout() следующим образом:

$(function() { 
    $('a[href*=#]:not([href=#])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     setTimeout(function(){ 
      $('html,body').animate({ 
      scrollTop: target.offset().top 
      }, 1000); 
     }, 3000); 
     return false; 
     } 
    } 
    }); 
}); 
+0

Большое вам спасибо! Очень добрый – whites

0

Вы можете использовать JavaScript-стандарт setTimeout() функции:

JavaScript

setTimeout(function() { 
    // function that is executed after the timer ends 
}, 3000); 

Как вам можно увидеть,Функцияпринимает два параметра: обработчик (функция), который будет выполнен после окончания таймера, и целое число, определяющее продолжительность таймера в миллисекундах.

Если вы не знакомы со всем этим понятием «обработки», рассмотрим следующий пример вместо этого, когда мы делаем то же самое, но первый «сохранить» функцию в переменной:

JavaScript

var fnCallback = function() { 
    console.log('This plague works.'); 
}; 

// Call setTimeout() with a handler function (fnCallback), and an integer (3000) 
setTimeout(fnCallback, 3000); 
+0

Большое вам спасибо за ваш добрый ответ – whites

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