ดูโค้ด
<div data-mk="fade-up">…</div>
หมวดนี้คือเวอร์ชัน “เข้าถึงได้” ของ Web Animation — animation แบบเดียวกัน แต่ทุกตัว
มี “เวอร์ชันเซฟ” สำหรับคนที่เปิด Reduce motion ในเครื่องไว้ในตัว เป็น drop-in
หยิบ motion-kit.css + motion-kit.js ไปวางเว็บไหนก็ได้
โผล่ตอน element เข้าจอ · ตอน Reduce = โผล่เลย ไม่เลื่อน
<div data-mk="fade-up">…</div>
<div data-mk="scale-in">…</div>
<div data-mk="blur-in">…</div>
<img data-mk="clip" src="…">
<span data-mk="mask"> <span class="mk-mask__in">หัวข้อ</span> </span>
<ul data-mk-stagger data-mk-step="70"> <li data-mk="fade-up">…</li> </ul>
ของที่ “เล่าข้อมูล” · ตอน Reduce = โชว์ค่าสุดท้ายทันที
<span data-mk-count="1240"
data-mk-count-dur="1500">0</span><div class="mk-progress" data-mk-progress="72"> <i class="mk-progress__bar"></i> </div>
<svg data-mk-draw data-mk-dur="1500"> <path d="…" fill="none" stroke="…"/> </svg>
เอามือชี้/กดเพื่อลอง · ตอน Reduce = ตัดการขยับ เก็บสี/เงา
<button class="mk-btn">กดฉัน</button>
<div class="mk-card">…</div>
<a class="mk-link">ลิงก์</a> <button class="mk-icon-btn">อ่านต่อ <i>…</i></button>
เผยทีละคำ + แบบหมุนเข้า · ตอน Reduce = โผล่เฉยๆ ไม่ขยับ
<p data-mk-text data-mk-step="70">ข้อความ…</p>
<div data-mk="rotate-in">…</div>
ripple · สวิตช์ · เอียง 3D · แสงตามเมาส์ · ตอน Reduce = ตัดการขยับ
<button class="mk-btn mk-ripple">กด</button>
<label class="mk-switch"><input type="checkbox"> <span class="mk-track"><span class="mk-thumb"></span></span> </label>
<div data-mk-tilt>…</div>
<div class="mk-spotlight">…</div>
วงแหวนความคืบหน้า + ป้ายวิ่งวน + แถบบอกตำแหน่ง scroll (บนสุดของหน้า)
<svg data-mk-ring="72" data-mk-ring-suffix="%"> <circle class="mk-ring__track" r="52"> <circle class="mk-ring__bar" r="52"> <text class="mk-ring__num">0</text> </svg>
<div class="mk-marquee"> <span class="mk-marquee__track">…items…</span> </div> <!-- JS ทำสำเนา 2 เท่าให้ลูปเนียน -->
แถบ scroll สีส้มบนสุดของหน้าเลื่อนตามที่บ๊องเลื่อน (.mk-scrollbar) — ลองเลื่อนหน้าดู
เคารพ prefers-reduced-motion อัตโนมัติ
(ตั้ง data-motion จาก matchMedia) + มี MotionKit.set('full'|'reduced'|'auto')
ให้ทำปุ่ม toggle เองได้. engine = Motion (motion.dev) + fallback IntersectionObserver/WAAPI ถ้า CDN ล่ม.
<!-- ใน head: กัน flash --> <link rel="stylesheet" href="motion-kit.css"> <script>document.documentElement.classList.add('mk-js'); document.documentElement.setAttribute('data-motion', matchMedia('(prefers-reduced-motion: reduce)').matches?'reduced':'full');</script> <!-- ก่อนปิด body --> <script src="motion-kit.js"></script> <script>MotionKit.init({ offset: 80 });</script>