shkola/wp-content/themes/dekart/assets/js/page-teachers.js
2026-09-08 18:38:27 +00:00

55 lines
1.8 KiB
JavaScript

/**
* Страница "Преподаватели" — фильтр карточек + reveal-анимации.
* Фильтры читаются из кнопок .teachers-filter__btn[data-filter],
* карточки фильтруются по .teachers-card[data-category].
*/
(function () {
'use strict';
// ── Reveal-анимации (как на главной/школе) ──
var sections = document.querySelectorAll('.page-teachers .reveal');
if (sections.length && 'IntersectionObserver' in window) {
var observer = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add('is-visible');
observer.unobserve(entry.target);
}
});
}, { threshold: 0.12 });
sections.forEach(function (el) {
observer.observe(el);
});
}
// ── Фильтр карточек ──
var filterWrap = document.querySelector('.teachers-filter');
var grid = document.getElementById('teachers-grid');
if (!filterWrap || !grid) {
return;
}
var buttons = filterWrap.querySelectorAll('.teachers-filter__btn');
var cards = grid.querySelectorAll('.teachers-card');
function applyFilter(slug) {
buttons.forEach(function (btn) {
var isActive = btn.getAttribute('data-filter') === slug;
btn.classList.toggle('is-active', isActive);
btn.setAttribute('aria-pressed', isActive ? 'true' : 'false');
});
cards.forEach(function (card) {
var cat = card.getAttribute('data-category') || 'all';
var visible = (slug === 'all' || cat === slug || cat === 'all');
card.classList.toggle('is-hidden', !visible);
});
}
buttons.forEach(function (btn) {
btn.addEventListener('click', function () {
applyFilter(btn.getAttribute('data-filter') || 'all');
});
});
})();