Hướng dẫn sử dụng thư viện KeySequence.js để tạo các tính năng ẩn trên trang web

KeySequence.js là một thư viện JavaScript nhẹ giúp bạn dễ dàng thêm các chức năng tương tác qua bàn phím vào trang web. Bài viết này sẽ hướng dẫn bạn cách sử dụng nó trong vòng 10 phút.

Cài đặt và cấu hình cơ bản

Bạn có thể tải thư viện từ CDN hoặc cài đặt qua npm:

<script src="https://cdn.jsdelivr.net/npm/keysequence.js"></script>

Nếu sử dụng npm:

npm install keysequence.js --save
import KeySeq from 'keysequence.js';

Ví dụ với mã Konami

Mã Konami (↑ ↑ ↓ ↓ ← → ← → B A) là một ví dụ nổi tiếng về "easter egg". Dưới đây là cách triển khai:

KeySeq('up up down down left right left right b a', function() {
  alert('Bạn đã tìm thấy easter egg!');
});

Tích hợp trạng thái và phản hồi

Bạn có thể thêm các trạng thái next, fail và done để theo dõi tiến trình của người dùng:

KeySeq('up up down down left right left right b a', {
  next: function(key, progress, sequence) {
    console.log(`Đã nhập ${progress + 1}/${sequence.length} phím`);
  },
  fail: function() {
    console.log('Lỗi! Hãy thử lại.');
  },
  done: function() {
    console.log('Xin chúc mừng! Bạn đã hoàn thành mã Konami');
    document.getElementById('hiddenContent').style.display = 'block';
  }
});

API chính và quản lý chuỗi phím

KeySequence.js hỗ trợ nhiều chuỗi phím cùng lúc và cho phép bạn quản lý chúng bằng các phương thức như disable và reset:

// Vô hiệu hóa chuỗi phím cụ thể
KeySeq.disable('up up down down left right left right b a');

// Đặt lại chuỗi phím
KeySeq.reset('left right up down');

Ứng dụng nâng cao

Dưới đây là một số ứng dụng thực tế:

Quyền hạn đa cấp

let levelAccess = 0;

KeySeq('a d m i n', function() { 
  if (levelAccess < 1) {
    levelAccess = 1;
    showMessage('Đã mở khóa quyền cấp 1');
  }
});

KeySeq('s u p e r', function() { 
  if (levelAccess >= 1) {
    levelAccess = 2;
    showMessage('Đã mở khóa quyền cấp 2');
  } else {
    showMessage('Yêu cầu quyền cấp thấp hơn');
  }
});

Tương tác dạng trò chơi

const gameKeys = 'q w e r t y';
let score = 0;

KeySeq(gameKeys, {
  next: function(key) {
    let elem = document.querySelector(`#key-${key}`);
    elem.classList.add('active');
    setTimeout(() => elem.classList.remove('active'), 200);
  },
  done: function() {
    score += 100;
    updateScoreboard(score);
  }
});

Tối ưu hóa hiệu suất và tương thích

Để tối ưu hóa hiệu suất, hãy giới hạn số lượng chuỗi phím hoạt động cùng lúc và vô hiệu hóa chúng khi người dùng rời khỏi trang:

window.addEventListener('beforeunload', () => {
  KeySeq.disable('all');
});

Kết luận

KeySequence.js mang đến một cách đơn giản nhưng mạnh mẽ để tích hợp các tính năng tương tác thú vị trên trang web của bạn. Với sự linh hoạt và khả năng tùy chỉnh cao, nó là công cụ lý tưởng cho việc tạo ra trải nghiệm người dùng độc đáo.

Thẻ: JavaScript KeySequence.js KonamiCode EasterEgg WebInteractivity

Đăng vào ngày 17 tháng 6 lúc 23:53