JSFiddle - React, Tailwind, and code Playground
by Boba Poshtar
JavaScript
function showSubscribeForm(){
let cookieDate = /nextDateForSubscribe=([0-9-]+);/.match(document.cookie);
if (cookieDate) {
coocieDate = (new Date(cookieDate[1])).valueOf(); // в мілісекундах
let today = Date.now(); // в мілісекундах поточний час
if (cookieDate > today) return; // дата в куках є і не просрочена
}
let subscribeForm = document.getElementById('subscribeForm');
subscribeForm.style.opacity = 0;
subscribeForm.style.display = 'block';
let opacity = 0;
let timerId = setInterval(showForm, 20);
function showForm(){
if (opacity > 1) {
subscribeForm.style.opacity = 1;
clearInterval(timerId);
}
subscribeForm.style.opacity = opacity;
opacity += 0.02;
}
}
function closeForm(months){
let date = new Date();
date.setMonth(date.getMonth() + months);
let dateStr = date.getFullYear() + '-' + add0(date.getMonth() + 1) + '-' + add0(date.getDate());
document.cookie = 'nextDateForSubscribe=' + dateStr;
document.cookie = "expires=" + (new Date('2050-01-01')).toUTCString();
document.cookie = "path=/";
}
// при закритті форми виконуємо closeForm(1);
// при сабскрайбі виконуємо closeForm(12);