
18 февраля 2020 CSS HTML JavaScript jQuery
Стоп-форма — это всплывающее окно, призывающее к действию, которое открывается через определенное время нахождения пользователя на странице или когда он пытается покинуть её. Чаще всего стоп-формы используются на Landing page.
Стоп-форма по таймеру
Рассмотрим пример вплывающего окна с формой на Bootsrap, которое вызывается если пользователь находится на странице более 10 сек:
Стоп-форма
×
function stopModal(){
$("#stop-modal").modal('show');
}
setTimeout(stopModal, 10000); // время в мс

За вызов формы отвечает вот эта небольшая JavaScript функция:
function stopModal(){
$("#stop-modal").modal('show');
}
setTimeout(stopModal, 10000); // время в мс
Стоп-форма при закрытии страницы
Заменим функцию таймера на следующий код:
// Вызываем окно если курсор мыши вышел за границы страницы
$(document).mouseleave(function(e){
if (e.clientY < 0) {
$("#stop-modal").modal('show');
}
});
// Если стоп-форму закрыли, то удаляем её, чтобы она больше не срабатывала
$('#stop-modal').on('hidden.bs.modal', function () {
$("#stop-modal").remove();
});
Суть работы заключается в том, что если курсор мыши вышел за пределы границ сайта, а обычно это происходит тогда, когда пользователь хочет закрыть вкладку или перейти на другую, то вызывается всплывающее окно. Следующая функция удаляет стоп-форму, если она уже была открыта, чтобы окно не открывалось больше одного раза.
Полный код:
Стоп-форма
×
// Вызываем окно если курсор мыши вышел за границы страницы
$(document).mouseleave(function(e){
if (e.clientY < 0) {
$("#stop-modal").modal('show');
}
});
// Если стоп-форму закрыли, то удаляем её, чтобы она больше не срабатывала
$('#stop-modal').on('hidden.bs.modal', function (e) {
$("#stop-modal").remove();
});