| Server IP : 172.67.191.97 / Your IP : 104.23.197.208 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/idiomas/media/idiomas/ |
Upload File : |
(function () {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init, { once: true });
} else {
init();
}
function init() {
const home = document.body.classList.contains('itemid-101');
if (!home || !('IntersectionObserver' in window)) return;
const selectors = [
'.idioma-block',
'.idioma-process',
'.idioma-contact',
'.idioma-faq-home__panel',
'.idioma-faq-home__visual',
'.idioma-card',
'.idioma-feature',
'.idioma-news',
'.idioma-latest-card',
'.idioma-steps li'
];
const elements = Array.from(document.querySelectorAll(selectors.join(',')));
const interactiveCards = Array.from(document.querySelectorAll([
'.idioma-card',
'.idioma-feature',
'.idioma-news',
'.idioma-latest-card',
'.idioma-faq details',
'.idioma-steps li'
].join(',')));
elements.forEach((element, index) => {
element.classList.add('idioma-reveal');
element.style.setProperty('--reveal-delay', `${Math.min(index % 6, 5) * 70}ms`);
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (!entry.isIntersecting) return;
entry.target.classList.add('is-visible');
observer.unobserve(entry.target);
});
}, {
rootMargin: '0px 0px 520px 0px',
threshold: 0.12
});
elements.forEach((element) => observer.observe(element));
interactiveCards.forEach((card) => {
card.addEventListener('pointermove', (event) => {
const rect = card.getBoundingClientRect();
const x = ((event.clientX - rect.left) / rect.width) * 100;
const y = ((event.clientY - rect.top) / rect.height) * 100;
const tiltX = ((x - 50) / 50) * 2.8;
const tiltY = ((50 - y) / 50) * 2.8;
card.style.setProperty('--spot-x', `${x}%`);
card.style.setProperty('--spot-y', `${y}%`);
card.style.setProperty('--tilt-x', `${tiltX}deg`);
card.style.setProperty('--tilt-y', `${tiltY}deg`);
}, { passive: true });
card.addEventListener('pointerleave', () => {
card.style.removeProperty('--spot-x');
card.style.removeProperty('--spot-y');
card.style.removeProperty('--tilt-x');
card.style.removeProperty('--tilt-y');
}, { passive: true });
});
window.setTimeout(() => {
elements.forEach((element) => {
element.classList.add('is-visible');
observer.unobserve(element);
});
}, 1800);
}
}());