<script>
$(document).ready(function () {
const $timer = $('.timer-five-minut .tn-atom');
const $button = $('.btw-timet a');
const $trigger = $('.uc-timer-five-minut');
let duration = 5 * 60; // 5 минут
let interval = null;
let started = false;
// формат времени MM:SS
function formatTime(seconds) {
const minutes = Math.floor(seconds / 60);
const secs = seconds % 60;
return String(minutes).padStart(2, '0') + ':' + String(secs).padStart(2, '0');
}
// обновление таймера
function updateTimer() {
$timer.text(formatTime(duration));
if (duration <= 0) {
clearInterval(interval);
// делаем кнопку неактивной
$button.css({
'pointer-events': 'none',
'opacity': '0.5',
'cursor': 'default'
});
// убираем ссылку
$button.removeAttr('href');
$button.removeAttr('aria-haspopup');
return;
}
duration--;
}
// запуск таймера один раз
function startTimer() {
if (started) return;
started = true;
updateTimer(); // сразу показать текущее значение
interval = setInterval(updateTimer, 1000);
}
// если браузер поддерживает IntersectionObserver
if ('IntersectionObserver' in window && $trigger.length) {
const observer = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
startTimer();
observer.disconnect(); // больше не следим
}
});
}, {
threshold: 0.5 // запуск, когда видно 50% блока
});
observer.observe($trigger[0]);
} else {
// fallback: если IntersectionObserver не поддерживается, запускаем сразу
startTimer();
}
});
</script>