✏️ 正在编辑: counter.js
路径:
/home/h359620/public_html/wp-content/themes/datis/inc/elementor/widgets/datis_counter/js/counter.js
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
jQuery(window).on("elementor/frontend/init", (function () { elementorFrontend.hooks.addAction("frontend/element_ready/datis_counter.default", (function () { 'use strict'; const easeOutCubic = t => 1 - Math.pow(1 - t, 3); function format(n, decimals, sep) { const fixed = n.toFixed(decimals); if (!sep) return fixed; const parts = fixed.split('.'); let s = parts[0]; if (sep === 'comma') s = s.replace(/\B(?=(\d{3})+(?!\d))/g, ","); if (sep === 'dot') s = s.replace(/\B(?=(\d{3})+(?!\d))/g, "."); if (sep === 'space') s = s.replace(/\B(?=(\d{3})+(?!\d))/g, " "); return parts.length > 1 ? s + '.' + parts[1] : s; } function animateValue(el) { const start = parseFloat(el.dataset.start || '0'); const end = parseFloat(el.dataset.end || '0'); const duration = parseInt(el.dataset.duration || '1200', 10); const decimals = parseInt(el.dataset.decimals || '0', 10); const sep = el.closest('.datis-counter').dataset.sep || ''; const valueEl = el.querySelector('.value'); const t0 = performance.now(); function step(t) { const p = Math.min(1, (t - t0) / duration); const eased = easeOutCubic(p); const current = start + (end - start) * eased; valueEl.textContent = format(current, decimals, sep); if (p < 1) requestAnimationFrame(step); } requestAnimationFrame(step); } function init() { const counters = document.querySelectorAll('.datis-counter .counter-number'); if (!counters.length) return; const obs = ('IntersectionObserver' in window) ? new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting && !entry.target.dataset.done) { entry.target.dataset.done = '1'; animateValue(entry.target); } }); }, { threshold: 0.35 }) : null; counters.forEach(el => { if (obs) obs.observe(el); else animateValue(el); }); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })) }));
💾 保存文件
← 返回文件管理器