芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/wp-content/themes/dexolix/assets/js/custom-script-file.js
(function($) { 'use strict'; /*================================== // 2. Mobile_Menu_Accordion // ==================================*/ $(".jquery-accordion-menu").each(function () { $(this).jqueryAccordionMenu(); }); $(".colors a").on('click' ,function () { const selectedClass = $(this).attr("class"); $(".jquery-accordion-menu").each(function () { const menu = $(this); if (selectedClass !== "default") { menu .removeClass() .addClass("jquery-accordion-menu") .addClass(selectedClass); } else { menu.removeClass().addClass("jquery-accordion-menu"); } }); }); /*================================== // Initialize AOS Animation ==================================*/ function aosInit() { AOS.init({ once: true, offset: 0, anchorPlacement: "bottom-bottom", }); } aosInit(); // CURSOR CODE// const initCursorForSection = (sectionSelector, cursorSelector) => { let clientX = -100; let clientY = -100; let lastX = -100; let lastY = -100; const cursor = document.querySelector(cursorSelector); const section = document.querySelector(sectionSelector); if (!cursor || !section) return; // Only show cursor when inside the section section.addEventListener('mouseenter', () => { cursor.classList.add('visible'); }); section.addEventListener('mouseleave', () => { cursor.classList.remove('visible'); }); // Inside the section, hide cursor when hovering over links const links = section.querySelectorAll('a'); links.forEach(link => { link.addEventListener('mouseenter', () => { cursor.classList.remove('visible'); // Hide the custom cursor }); link.addEventListener('mouseleave', () => { cursor.classList.add('visible'); // Show again when leaving link }); }); // Update mouse position document.addEventListener('mousemove', e => { clientX = e.clientX; clientY = e.clientY; }); // Smooth animation const lerp = (a, b, n) => (1 - n) * a + n * b; const render = () => { const delta = 0.1; lastX = lerp(lastX, clientX, delta); lastY = lerp(lastY, clientY, delta); cursor.style.transform = `translate(${lastX}px, ${lastY}px)`; requestAnimationFrame(render); }; requestAnimationFrame(render); }; // Initialize cursors initCursorForSection('.dex_slider01-slider', '.dex_slider01-cursor'); initCursorForSection('.dex_slider02-slider', '.dex_slider02-cursor'); initCursorForSection('.dex_articles-slider', '.dex_articles-cursor'); /*================================== // 11. HM2_Title_scroll_js // ==================================*/ if (typeof gsap !== 'undefined') { gsap.registerPlugin(ScrollTrigger); const textElements = document.querySelectorAll(".dex_hero02-title-animate"); textElements.forEach(textElement => { const text = textElement.textContent; textElement.innerHTML = text.split("").map(char => `
${char}
`).join(""); const chars = textElement.querySelectorAll("span"); gsap.from(chars, { scrollTrigger: { trigger: textElement, start: "top 58%", end: "bottom 0%", scrub: true, }, color: "#fff", stagger: 1, // Delay between each character animation duration: 1, }); }); } /*================================== // 15. Home_Clippath_Hover_Changer // ==================================*/ document.addEventListener("DOMContentLoaded", function () { let blogArchiveCatList = document.querySelectorAll('.dex_blog_cat-link-box li a'); if (blogArchiveCatList.length > 0) { blogArchiveCatList.forEach((item) => { item.classList.add('dex_blog_cat-link'); }) } }); /*================================== // FAQ // ==================================*/ function dexolixFAQ(){ // Get all FAQ questions const faqQuestions = document.querySelectorAll('.dex_accordion-question'); // Add click event to each question faqQuestions.forEach(question => { question.addEventListener('click', function() { const faqItem = this.parentElement; const answer = faqItem.querySelector(".dex_accordion-answer"); const iconWrapper = this.querySelector(".faq-icon"); const icon = iconWrapper.querySelector("i"); if (faqItem.classList.contains("open")) { // Close this item answer.classList.add("hidden"); faqItem.classList.remove("open"); icon.classList.replace("icon-dex-minus", "icon-dex-plus"); iconWrapper.classList.remove("rotate-open"); iconWrapper.classList.add("rotate-close"); } else { // Close all other items document.querySelectorAll(".dex_accordion-faq-item").forEach(item => { const ans = item.querySelector(".dex_accordion-answer"); ans.classList.add("hidden"); item.classList.remove("open"); const iconOtherWrapper = item.querySelector(".faq-icon"); if (iconOtherWrapper) { const iconOther = iconOtherWrapper.querySelector("i"); iconOther.classList.replace("icon-dex-minus", "icon-dex-plus"); iconOtherWrapper.classList.remove("rotate-open"); iconOtherWrapper.classList.add("rotate-close"); } }); // Open this item faqItem.classList.add("open"); answer.classList.remove("hidden"); icon.classList.replace("icon-dex-plus", "icon-dex-minus"); iconWrapper.classList.remove("rotate-close"); iconWrapper.classList.add("rotate-open"); } }); }); } dexolixFAQ(); /* =============== Footer List style ================*/ function dexolixFooterListStyle(){ const titles = document.querySelectorAll('.dex_footer-link-title'); titles.forEach(title => { title.addEventListener('click', function() { const box = this.nextElementSibling; const isHidden = box.style.display === 'none' || !box.style.display; if (isHidden) { // SLIDE DOWN (show) box.style.display = 'block'; const fullHeight = box.scrollHeight + 'px'; // Start animation box.style.maxHeight = '0'; setTimeout(() => { box.style.maxHeight = fullHeight; }, 10); } else { // SLIDE UP (hide) box.style.maxHeight = box.scrollHeight + 'px'; // Force reflow setTimeout(() => { box.style.maxHeight = '0'; box.addEventListener('transitionend', () => { box.style.display = 'none'; }, { once: true }); }, 10); } }); }); } dexolixFooterListStyle(); })(jQuery);