Tiệm Công Nghệ

Đang hiện gợi ý.

Đang mở danh mục của tiệm…
↑↓ để di chuyển↵ để mởesc để đóng
Tìm kiếm Tiệm Công Nghệ
Componentv1.0.0~2,8 KB (gzip)

Magnetic Button

Nút kêu gọi hành động nghiêng về phía con trỏ trước cả khi được bấm

Miễn phíMiễn phí
Định dạng

.zip · HTML / CSS / JS · v1.0.0

Miễn phí — không cần tài khoản hay email. Luôn là bản mới nhất.

Đang chạy trực tiếp

Phiên bản
Độ rộng khung xem
Thu phóng

Giới thiệu

Chiếc nút bạn muốn người xem bấm, giờ có cảm giác sống động. Khi con trỏ lại gần, nút nghiêng về phía nó và dòng chữ trôi xa hơn một chút — một chút vật lý đủ để kéo ánh nhìn mà không ồn ào. Bấm vào thì gợn sóng lan ra từ đúng chỗ vừa bấm.

  • Hai kiểu: nút gradient nổi bật và viên kính mờ nhẹ nhàng
  • Mọi con số đều là CSS custom property hoặc tuỳ chọn: lực hút, tầm hút, màu, thời gian
  • Script chỉ ghi vị trí, CSS lo chuyển động, nên mượt và nhẹ
  • Không cần cài gì: một file CSS và một script nhỏ, hoặc một component React

Tính năng

  • Bị hút về phía con trỏ ở gần; chữ bên trong trôi xa hơn một chút
  • Gợn sóng lan ra từ đúng chỗ bấm, từ giữa nút khi bấm Enter / Space
  • Kiểu gradient và kiểu kính mờ, đủ sáng và tối
  • Dùng được cho <button> và <a>, bao nhiêu nút trên một trang cũng được
  • Bản HTML/CSS/JS thuần và bản React (dùng được với Next.js)
  • Không phụ thuộc thư viện, dưới 3 KB sau gzip

Cách dùng

Gắn stylesheet và script một lần, rồi thêm data-magnetic vào nút hoặc link bất kỳ:

HTML
<link rel="stylesheet" href="magnetic-button.css" />
<script src="magnetic-button.js" defer></script>

<button class="magnetic-button" type="button" data-magnetic>
  <span class="magnetic-button__label">Bắt đầu</span>
</button>

<a class="magnetic-button" href="/pricing" data-magnetic data-variant="ghost">
  <span class="magnetic-button__label">Xem bảng giá</span>
</a>

Tuỳ chọn qua data attribute: data-magnetic-strength (mặc định 0.3), data-magnetic-label-strength (0.2), data-magnetic-radius (48, đơn vị px), data-magnetic-max-shift (16, đơn vị px — nút dịch tối đa bấy nhiêu). Chỉ nút gần con trỏ nhất mới chuyển động, nên các nút đặt sát nhau không bao giờ đè lên nhau. Nút thêm vào sau khi trang đã tải: MagneticButton.init(container) — hàm này trả về một hàm để gỡ ra.

Hỏi về sản phẩm này

Chưa chắc có hợp dự án của bạn? Cứ hỏi — câu trả lời lấy từ chính trang này.

Câu trả lời do AI viết dựa trên trang này và có thể sai. Nội dung trên trang mới là chuẩn.

Lịch sử phiên bản

  1. 1.0.0First releaseMới nhất

    Plain HTML/CSS/JS and React builds. Primary and ghost styles, ripple, keyboard and reduced-motion support.

  2. Bản sửa lỗi và tính năng mới đều có ngay ở nút tải này — file tải về luôn là bản mới nhất.