پیش‌نمایش زنده (iframe sandbox) تمام‌صفحه
در حال بارگذاری پیش‌نمایش زنده...
<div class="radikalwp-counter" data-counter data-target="342"><span class="radikalwp-counter-num" data-counter-num>۰<//span><span class="radikalwp-counter-label">اسنیپت آماده<//span><//div>
.radikalwp-counter {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 22px 34px;
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 16px;
}
.radikalwp-counter-num {
  font-size: 34px;
  font-weight: 900;
  color: #4f46e5;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.radikalwp-counter-label { font-size: 12.5px; font-weight: 700; color: #64748b; }
// شمارش انیمیشنی تا مقدار هدف هنگام ورود به دید + اعداد فارسی
(function () {
  var faDigits = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
  function faNum(n) { return String(n).replace(/\d/g, function (d) { return faDigits[+d]; }); }
  var els = document.querySelectorAll('[data-counter]');
  if (!('IntersectionObserver' in window)) {
    els.forEach(function (el) { el.querySelector('[data-counter-num]').textContent = faNum(el.dataset.target); });
    return;
  }
  var io = new IntersectionObserver(function (entries) {
    entries.forEach(function (entry) {
      if (!entry.isIntersecting || entry.target.dataset.done) return;
      entry.target.dataset.done = '1';
      var target = parseInt(entry.target.dataset.target, 10) || 0;
      var num = entry.target.querySelector('[data-counter-num]');
      var start = null, DURATION = 1400;
      function step(ts) {
        if (!start) start = ts;
        var p = Math.min((ts - start) / DURATION, 1);
        var eased = 1 - Math.pow(1 - p, 3);
        num.textContent = faNum(Math.round(target * eased));
        if (p < 1) requestAnimationFrame(step);
      }
      requestAnimationFrame(step);
    });
  }, { threshold: .5 });
  els.forEach(function (el) { io.observe(el); });
})();

درباره این اسنیپت

عدد آماری که هنگام ورود به دید، از صفر با شتاب تا مقدار نهایی می‌شمارد؛ بازخورد زنده‌ای برای آمار کاربران، فروش و پروژه‌ها. با IntersectionObserver فقط وقتی کاربر به آن می‌رسد اجرا می‌شود و اجرای دوباره صفحه را سنگین نمی‌کند. اعداد فارسی و جداکننده هزارگان از پیش پشتیبانی می‌شوند. برای ردیف آمار صفحه اصلی و صفحه درباره ما مناسب است.

پرسش‌های متداول

در ویژگی data-target روی عنصر اصلی؛ JS همان را می‌خواند. اگر مقدار از سرور می‌آید، همان ویژگی را داینامیک پر کنید.

برچسب data-done از شمارش تکراری هنگام اسکرول بالا و پایین جلوگیری می‌کند؛ اگر رفتار هر بار دید می‌خواهید، آن برچسب را حذف کنید.

با ease-out مکعبی شروع تند و پایان آرام دارد؛ حس طبیعی رسیدن به عدد. برای شمارش خطی، eased را همان p بگذارید.

امتیاز شما به این محتوا

میانگین امتیاز کاربران: ۴.۶ از ۳ رأی — برای امتیازدهی وارد شوید

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!

دیدگاه خود را بنویسید

کپچا

دیدگاه شما پس از تأیید مدیر نمایش داده می‌شود.

شاید بپسندی

۰دانلود روزانه
۰اسنیپت کد
۰قالب المنتور
پیش‌نمایش زنده اسنیپت

شمارنده آمار افزایشی

کامپوننت شمارنده آمار
۱۵
۴.۴ (۳)
۲۹۰+اسنیپت کد
۸۰+قالب المنتور
۲۹فونت رایگان
۱۳ابزار آنلاین
پیش‌نمایش زنده اسنیپت

ردیف آمار چهار عددی

آمار اعداد اعتماد
۳۲
۴.۶ (۵)
پیش‌نمایش زنده اسنیپت

چیپ فیلتر با شمارنده

چیپ فیلتر دسته‌بندی
۴۷
۴.۲ (۷)