Skip to main content

Tạo đồng hồ đặt bất cứ đâu

Để tạo đồng hồ hiển thị thời gian ở bất cứ đâu trên trang Web hầu dễ dàng biết được ta đang ở thời điểm nào trong ngày. Làm một đồng hồ đơn giản, dễ dàng tùy biến, ta cần thực hiện những bước sau:

1)Tạo file "src/theme/Clock.js"có nội dung:

import React, { useEffect, useState } from 'react';

function Clock() {
  const [time, setTime] = useState(new Date());

  useEffect(() => {
    const interval = setInterval(() => {
      setTime(new Date());
      console.log("Clock updated:", time.toLocaleTimeString()); // ✅ Debug log
    }, 1000);

    return () => clearInterval(interval);
  }, []);

  return <div className="navbar-clock">{time.toLocaleTimeString()}</div>;
}

export default Clock;

2)Tạo 1 file override Layout: "src/theme/Layout/index.js" với nội dung:

import React from 'react';
import OriginalLayout from '@theme-original/Layout';
import Clock from '@site/src/theme/Clock'; // đảm bảo đường dẫn đúng

export default function LayoutWrapper(props) {
  return (
    <div>
      <OriginalLayout {...props} />
      <div
        style={{
          position: 'fixed',
          right: '1016px',
          bottom: '475px',
          width: '120px',       // Điều chỉnh chiều ngang khung
          height: '40px',       // Điều chỉnh chiều cao khung
          color: red, /* Đổi màu để dễ nhìn */
          backgroundColor: 'transparent',  // Nền trong suốt
          padding: '5px 3px',
          borderRadius: '5px',
          boxShadow: 'none',    // Nếu không cần bóng đổ
          zIndex: 2000,
          textAlign: 'center',  // Canh giữa chữ
        }}
      >
        <Clock />
      </div>
    </div>
  );
}

Muc đích dùng file này với những cấu hình cần thiết về kiểu dáng đồng hồ, hiệu ứng nền trong suốt

(transparent),

chiều rộng, chiều cao khung và vị trí đặt trên trang... điều chỉnh

"width", "bottom" 

để đặt đồng hồ ở vị trí mong muốn!