Este projeto é um relógio analógico simples com exibição digital, desenvolvido apenas com HTML, CSS e JavaScript. Ele mostra a hora atual utilizando três ponteiros (horas, minutos e segundos) e um visor digital abaixo do relógio.
- Relógio analógico de 12 horas com ponteiros de horas, minutos e segundos
- Visor digital (HH:MM:SS) atualizado a cada segundo
- Marcas de hora a cada 30° (12 marcações)
- Layout centralizado na página
- HTML5
- CSS3
- JavaScript (DOM API,
setInterval,Date)
/home/gabriel/dloa/relogio/
├── index.html
├── script.js
└── style.css
- Baixe/clonar este projeto.
- Abra o arquivo
index.htmldiretamente no seu navegador.- Alternativamente, você pode servir a pasta com um servidor local:
- Python:
python3 -m http.servere acessehttp://localhost:8000/ - Node (http-server):
npx http-server .e acesse a URL indicada
- Python:
- Alternativamente, você pode servir a pasta com um servidor local:
Não há dependências ou etapas de build; funciona em qualquer navegador moderno.
index.htmldefine a estrutura do relógio (container, marcas, ponteiros e exibição digital).style.cssestiliza o relógio, centraliza o layout e define tamanhos, cores e o comportamento de rotação viatransform-origin: leftpara os ponteiros.script.jsobtém a hora atual comnew Date()e:- Atualiza o visor digital com
HH:MM:SS(funçãofixZeroadiciona zero à esquerda quando necessário) - Rotaciona os ponteiros usando graus calculados:
- Segundos:
sDeg = (360 / 60) * second - 90 - Minutos:
mDeg = (360 / 60) * minute - 90 - Horas:
hDeg = (360 / 12) * hour - 90
- Segundos:
- O deslocamento
-90posiciona os ponteiros alinhados ao topo do relógio (considerando a origem de transformação à esquerda do elemento). - A atualização ocorre a cada 1000 ms via
setInterval(updateClock, 1000).
- Atualiza o visor digital com
- Tamanhos e cores dos ponteiros podem ser ajustados em
style.css(.p_s,.p_m,.p_h). - O tamanho do relógio pode ser alterado em
.relogio(width/height). - Você pode adicionar mais marcações (por exemplo, a cada 5 minutos) duplicando elementos
.risconoindex.htmle ajustando os ângulos.
- Ponteiro de horas não considera a fração dos minutos. Uma versão mais precisa pode usar:
hDeg = (360 / 12) * hour + (360 / 12) * (minute / 60) - 90
- Tornar o relógio responsivo (usar unidades relativas ao invés de valores fixos).
- Acessibilidade: adicionar descrições ARIA para o relógio digital e analógico.
- Adicionar animação suave com
requestAnimationFramepara o ponteiro de segundos. - Adicionar tema claro/escuro.
O rodapé do projeto indica "Criado pela B7Web" como atribuição. Caso deseje, mantenha ou personalize esta referência conforme o contexto do seu uso.
Nenhuma licença definida. Recomenda-se adicionar uma licença (por exemplo, MIT) conforme a sua necessidade.
This project is a simple analog clock with a digital display, built with plain HTML, CSS, and JavaScript. It shows the current time using three hands (hours, minutes, seconds) and a digital display below the clock.
- 12-hour analog clock with hour, minute, and second hands
- Digital display (HH:MM:SS) updated every second
- Hour marks every 30° (12 marks)
- Centered page layout
- HTML5
- CSS3
- JavaScript (DOM API,
setInterval,Date)
/home/gabriel/dloa/relogio/
├── index.html
├── script.js
└── style.css
- Download/clone this project.
- Open the
index.htmlfile directly in your browser.- Alternatively, serve the folder with a local server:
- Python:
python3 -m http.serverand visithttp://localhost:8000/ - Node (http-server):
npx http-server .and visit the indicated URL
- Python:
- Alternatively, serve the folder with a local server:
There are no dependencies or build steps; it works in any modern browser.
index.htmldefines the clock structure (container, marks, hands, and digital display).style.cssstyles the clock, centers the layout, sets sizes and colors, and usestransform-origin: leftfor hand rotation.script.jsgets the current time usingnew Date()and:- Updates the digital display with
HH:MM:SS(fixZeroadds leading zeros when needed) - Rotates the hands using calculated degrees:
- Seconds:
sDeg = (360 / 60) * second - 90 - Minutes:
mDeg = (360 / 60) * minute - 90 - Hours:
hDeg = (360 / 12) * hour - 90
- Seconds:
- The
-90offset aligns the hands to the top of the clock (considering the left transform origin). - The update occurs every 1000 ms via
setInterval(updateClock, 1000).
- Updates the digital display with
- Adjust hand sizes and colors in
style.css(.p_s,.p_m,.p_h). - Change the clock size in
.relogio(width/height). - Add more marks (e.g., every 5 minutes) by duplicating
.riscoelements inindex.htmland setting appropriate angles.
- The hour hand does not account for minute fraction. A more accurate version can use:
hDeg = (360 / 12) * hour + (360 / 12) * (minute / 60) - 90
- Make the clock responsive (use relative units instead of fixed values).
- Accessibility: add ARIA descriptions for the analog and digital clock.
- Add smooth animation with
requestAnimationFramefor the second hand. - Add light/dark theme.
The project footer states "Criado pela B7Web" (Created by B7Web). Keep or customize this attribution to suit your usage context.
No license defined. Consider adding a license (e.g., MIT) according to your needs.