>  기사  >  웹 프론트엔드  >  html5를 사용하여 시계 애니메이션 효과 만들기

html5를 사용하여 시계 애니메이션 효과 만들기

王林
王林앞으로
2021-01-05 10:37:253430검색

html5를 사용하여 시계 애니메이션 효과 만들기

먼저 렌더링을 살펴보겠습니다(색상 일치와 관계없이):

(학습 동영상 공유: html5 동영상 튜토리얼)

html5를 사용하여 시계 애니메이션 효과 만들기

우선 이 시계를 구현하는 방법을 이해해야 하며, 그러지 마세요. 당분간 애니메이션에 대해 생각하지 말고 문제를 해체하고 단계별로 구현하는 방법을 배우십시오.

먼저 테두리가 있는 정사각형을 그리고 모서리를 둥글려 가장 바깥쪽 고리를 만든 다음 긴 직사각형을 여러 번 회전하여 크기를 조정해야 합니다.

html5를 사용하여 시계 애니메이션 효과 만들기

오버레이를 제거하여 또 다른 흰색 원을 그립니다. , 표준 규모를 달성할 수 있습니다

html5를 사용하여 시계 애니메이션 효과 만들기

마지막으로 세 개의 직사각형과 가운데에 작은 원을 추가하여 시계의 초기 상태를 달성합니다

코드 구현

위 프로세스를 이해한 후 코드 구현은 간단합니다. , 고려해야 할 유일한 것은 코드의 최적화입니다. 각 단계를 구현하는 방법을 간단하고 명확하게 하기 위해 반복되는 코드가 많습니다.

애니메이션의 경우 회전 애니메이션만 설정하면 되며, 시, 분, 초침의 애니메이션은 다른 시간만 변경하면 됩니다.

자세한 내용은 코드를 참조하세요.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>时钟</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .clock{
            width: 300px;
            height: 300px;
            border: 10px solid #ccc;
            /*百分比参照的是实际宽高*/
            border-radius: 50%;
            margin: 20px auto;
            position: relative;
        }
        .line{
            width: 8px;
            height: 300px;
            background-color: #ccc;
            position: absolute;
 
            /*实现居中*/
            /*参照父元素的宽*/
            left: 50%;
            top: 0;
            /*参照元素本身*/
            transform: translate(-50%,0);
 
            /*保留,否则会被覆盖*/
 
 
        }
        .line2{
            transform: translate(-50%,0) rotate(30deg);
        }
        .line3{
            transform: translate(-50%,0) rotate(60deg);
        }
        .line4{
            transform: translate(-50%,0) rotate(90deg);
        }
        .line5{
            transform: translate(-50%,0) rotate(120deg);
        }
        .line6{
            transform: translate(-50%,0) rotate(150deg);
        }
 
        .cover{
            width: 250px;
            height: 250px;
            border-radius: 50%;
            background-color: #fff;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
        }
        .hour{
            width: 6px;
            height: 80px;
            background-color: red;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 43200s linear infinite;
 
        }
        .minute{
            width: 4px;
            height: 90px;
            background-color: green;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 3600s linear infinite;
 
 
        }
        .second{
            width: 2px;
            height: 100px;
            background-color: blue;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 60s infinite steps(60);
            /*linear与step(60)重复*/
 
        }
        .center{
            width:20px;
            height:20px;
            background-color: #ccc;
            border-radius: 50%;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
 
        }
 
        /*创建移动动画*/
        @keyframes move{
            0%{
                transform: translate(-50%,-100%) rotate(0deg);
            }
            100%{
                transform: translate(-50%,-100%) rotate(360deg);
            }
 
        }
    </style>
</head>
<body>
<div>
    <div class="line line1"></div>
    <div class="line line2"></div>
    <div class="line line3"></div>
    <div class="line line4"></div>
    <div class="line line5"></div>
    <div class="line line6"></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
</body>
</html>

관련 권장 사항: html5 튜토리얼

위 내용은 html5를 사용하여 시계 애니메이션 효과 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제