찾다
웹 프론트엔드HTML 튜토리얼css3制作时钟_html/css_WEB-ITnose

制作时钟之前需要了解几点知识:

一、圆上点坐标的计算

二、时钟上时针、分针、秒针的换算

我们观察一下时钟,首先想到的是与角度有关。再有是,秒针,分针,时针之间的进位关系。

  比如说h时m分s秒,时针、分针、秒针此时此刻的角度:(-90,是因为rotateZ角度旋转规则,默认是从水平开始,逆时针为+,顺时针为-)

  ds  =  s*6-90;

  dm =  m*6+(s/60*6)-90;

  dh  =  h*30+(m/60*30)-90; 

  1. 我们都知道1s = 1 / 60min,1min = 1 / 60h;
  2. 观察任意一款手表或时钟,我们会发现,通常时钟的表盘会被分成12个大格,5*12=60个小格,而整个表盘是360°,也就是说每个小格是6°。换句话说,秒针和分针每动一下,都会走过1小格,走过了6°,而时针动一下,则走过了一大格,5*6°=30°;因此,秒针和分针移动的基值是6°,时针是30°;
  3. 另外在分针走动的时候,时针也不是静止不动的,而是不甘寂寞的默默向前移动,也就是说当分针动一下,走了6°时,时针实际上也挪动了1 / 60 * 30°。所以,计算时针角度时不要忽略了分针对其的影响。(虽然秒针对分针也有着同样的影响,但几乎看不出来,所以,通常我们会将其忽略)

三、js获取时间

  • 获得当前时间,var date = new Date(),获得当前时间,以毫秒数表示。
  • getFullYear(),4位年份
  • getMonth(),从0-11,分别表示1-12月
  • getDate(),月份中的天数
  • getDay(),从0-6,分别表示星期日-星期六
  • getHours(),0-23
  • getMinutes(),0-59
  • getSecond(),0-59
  • 代码如下:




    时钟效果的制作








    CSS 时钟效果演示












          /*
          * 绘制钟表刻度线
          * @param wrap 刻度线的父容器
          * @param total 刻度线的总个数
          * @param translateX 刻度线在x轴方向的偏移量
          */

          function drawLines(wrap,total,translateX){
          var gap = 360/total;
          var strHtml ='';
          for (var i = 0; i strHtml += '

        1. ';
          };
          wrap.html(strHtml);
          }

          /*
          * 绘制时钟数字
          * @param wrap 数字的父容器,仿照径向菜单原理http://www.cnblogs.com/wuxiaobin/p/4644806.html
          * 由于旋转是从水平x轴开始旋转的,所以需要-90
          */
          function drawNumbers(wrap){
          var radius = wrap.width() / 2;

          var strHtml = '';
          for(var i=1; i var myAngle = (i-3)/6 * Math.PI; //原公式 角度=>弧度 (i*30-90)*(Math.PI/180) => (i-3)/6 * Math.PI;

          var myX = radius + radius*Math.cos(myAngle), // x=r+rcos(θ)
          myY = radius + radius*Math.sin(myAngle); // y=r+rsin(θ)

          strHtml += '

        2. ' + i + '
        3. ';
          }
          wrap.html(strHtml);
          }


          /*
          * 钟表走动,转动秒针、分针、时针
          */
          function move(){
          var domHour = $(".hour"),
          domMin = $(".min"),
          domSec = $(".sec");

          setInterval(function(){
          var now = new Date(),
          hour = now.getHours(),
          min = now.getMinutes(),
          sec = now.getSeconds();

          var secAngle = sec*6 - 90, // s*6-90
          minAngle = min*6 + sec*0.1 - 90, // m*6+s*0.1-90
          hourAngle = hour*30 + min*0.5 - 90; // h*30+m*0.5 - 90

          domSec.css('transform', 'rotate(' + secAngle + 'deg)');
          domMin.css('transform', 'rotate(' + minAngle + 'deg)');
          domHour.css('transform', 'rotate(' + hourAngle + 'deg)');

          document.title = hour + ':' + min + ':' + sec;

          },1000);

          }
          })


          最终效果:

          성명
          본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
          HTML 태그가 웹 개발에 중요한 이유는 무엇입니까?HTML 태그가 웹 개발에 중요한 이유는 무엇입니까?May 02, 2025 am 12:03 AM

          htmltagsareessentialforwebdevelopmentasthuctureandenhancewebpages.1) thefinelayout, semantics 및 internactivity.2) semantictagsimproveAccessibility 및 sseo.3) appleasoftagscanoptimizeperformanceandenseRocRossercompatiber.

          HTML 태그 및 속성에 일관된 코딩 스타일을 사용하는 것의 중요성을 설명하십시오.HTML 태그 및 속성에 일관된 코딩 스타일을 사용하는 것의 중요성을 설명하십시오.May 01, 2025 am 12:01 AM

          일관된 HTML 인코딩 스타일은 코드의 가독성, 유지 가능성 및 효율성을 향상시키기 때문에 중요합니다. 1) 소문자 태그 및 속성 사용, 2) 일관된 압입 유지, 3) 단일 또는 이중 인용문을 선택하고 고수하십시오. 4) 프로젝트에서 다양한 스타일을 혼합하지 않으십시오.

          Bootstrap 4에서 멀티 프로 젝트 회전 목마를 구현하는 방법은 무엇입니까?Bootstrap 4에서 멀티 프로 젝트 회전 목마를 구현하는 방법은 무엇입니까?Apr 30, 2025 pm 03:24 PM

          솔루션 Bootstrap4에서 다중 프로 젝트 회전 목마를 구현하는 것은 부트 스트랩 4에서 멀티 프로 젝트 회전 목마를 구현하는 것은 쉬운 일이 아닙니다. 부트 스트랩 ...

          DeepSeek 공식 웹 사이트는 마우스 스크롤 이벤트를 관통하는 효과를 어떻게 달성합니까?DeepSeek 공식 웹 사이트는 마우스 스크롤 이벤트를 관통하는 효과를 어떻게 달성합니까?Apr 30, 2025 pm 03:21 PM

          마우스 스크롤링 이벤트 침투의 효과를 달성하는 방법은 무엇입니까? 웹을 탐색하면 종종 특별한 상호 작용 디자인이 발생합니다. 예를 들어, DeepSeek 공식 웹 사이트에서 � ...

          HTML 비디오의 재생 제어 스타일 수정 방법HTML 비디오의 재생 제어 스타일 수정 방법Apr 30, 2025 pm 03:18 PM

          HTML 비디오의 기본 재생 제어 스타일은 CSS를 통해 직접 수정할 수 없습니다. 1. JavaScript를 사용하여 사용자 정의 컨트롤을 만듭니다. 2. CSS를 통해 이러한 통제를 아름답게합니다. 3. video.js 또는 plyr와 같은 라이브러리를 사용하여 호환성, 사용자 경험 및 성능을 고려하면 프로세스를 단순화 할 수 있습니다.

          휴대 전화에서 기본 선택을 사용하면 어떤 문제가 발생합니까?휴대 전화에서 기본 선택을 사용하면 어떤 문제가 발생합니까?Apr 30, 2025 pm 03:15 PM

          휴대 전화에서 기본 선택을 사용하는 데있어 잠재적 인 문제는 모바일 애플리케이션을 개발할 때 종종 상자를 선택해야 할 필요가 있습니다. 일반적으로 개발자 ...

          휴대 전화에서 기본 선택을 사용하는 단점은 무엇입니까?휴대 전화에서 기본 선택을 사용하는 단점은 무엇입니까?Apr 30, 2025 pm 03:12 PM

          휴대 전화에서 기본 선택을 사용하는 단점은 무엇입니까? 모바일 장치에서 애플리케이션을 개발할 때는 올바른 UI 구성 요소를 선택하는 것이 매우 중요합니다. 많은 개발자 ...

          Three.js 및 Octree를 사용하여 방에서 3 인칭 로밍의 충돌 처리를 최적화하는 방법은 무엇입니까?Three.js 및 Octree를 사용하여 방에서 3 인칭 로밍의 충돌 처리를 최적화하는 방법은 무엇입니까?Apr 30, 2025 pm 03:09 PM

          Three.js 및 Octree를 사용하여 방에서 3 인칭 로밍의 충돌 처리를 최적화하십시오. 3.js의 Octree를 사용하여 방에서 3 인칭 로밍을 구현하고 충돌을 추가하십시오 ...

          See all articles

          핫 AI 도구

          Undresser.AI Undress

          Undresser.AI Undress

          사실적인 누드 사진을 만들기 위한 AI 기반 앱

          AI Clothes Remover

          AI Clothes Remover

          사진에서 옷을 제거하는 온라인 AI 도구입니다.

          Undress AI Tool

          Undress AI Tool

          무료로 이미지를 벗다

          Clothoff.io

          Clothoff.io

          AI 옷 제거제

          Video Face Swap

          Video Face Swap

          완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

          뜨거운 도구

          WebStorm Mac 버전

          WebStorm Mac 버전

          유용한 JavaScript 개발 도구

          SublimeText3 영어 버전

          SublimeText3 영어 버전

          권장 사항: Win 버전, 코드 프롬프트 지원!

          에디트플러스 중국어 크랙 버전

          에디트플러스 중국어 크랙 버전

          작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

          ZendStudio 13.5.1 맥

          ZendStudio 13.5.1 맥

          강력한 PHP 통합 개발 환경

          Atom Editor Mac 버전 다운로드

          Atom Editor Mac 버전 다운로드

          가장 인기 있는 오픈 소스 편집기