> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 크리에이티브 시계 프로젝트에 대한 자세한 설명

JavaScript 크리에이티브 시계 프로젝트에 대한 자세한 설명

小云云
풀어 주다: 2018-01-04 13:09:19
원래의
1833명이 탐색했습니다.

이 기사에서는 주로 JavaScript 창의적인 시계 프로젝트를 소개합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

1. 최종 효과 표시:

2. 프로젝트 하이라이트

1. 코드 구조가 명확하고 명확합니다.

2. 실시간으로 동적으로 표시됩니다. 3. 인터페이스가 간단하고 아름답습니다.

4. 브라우저 호환성 향상

3. 지식 포인트 요약:

jQuery, 네이티브 자바스크립트, CSS3, h5

4. 중요하고 어려운 점에 대한 설명.

1. 각 포인터의 회전 각도 구하기

먼저 다음 개념을 명확히 해야 합니다.

시계 바늘은 원을 그리며 360도 회전합니다.

시침:

다이얼에는 12시간이 있습니다.

분침:

다이얼에는 60개의 작은 격자가 있습니다. 분침은 작은 격자를 통해 6도씩 회전합니다. 다이얼의 그리드에서 초침은 매 분마다 작은 그리드를 통해 6도 회전합니다.

(1 ) 현재 시간을 가져옵니다

예를 들어(시침 회전 각도 계산을 예로 들겠습니다) : 예를 들어 현재 시간은 9:28입니다.

시침은 9시에서 10시 사이여야 하며

메서드를 통해서만 얻을 수 있습니다. 정시에 현재 시간과 현재 시간을 모두 가져와야 합니다.

(2) 회전 각도 구하기

시침은 매 시간마다 30도씩 회전하므로 분침의 회전 각도는 분입니다. 시침은 다음과 같이 구합니다.

마찬가지로 분침과 초침의 회전 각도는 다음과 같습니다.

분침:

초침:

순서 시계를 더 정확하게 만들기 위해 밀리초 단위까지 정확합니다.

(3) 실행 주파수, 즉 초침 회전 주파수 제어

초침 회전 주파수를 변경하는 기능의 실행 시간 간격을 조정합니다.

5. 프로젝트를 최적화해야 합니다

1. 페이지가 너무 단순하여 추가적인 최적화와 개선이 필요합니다.

2. 그림을 그릴 때 시계에 분과 초를 그릴 시간이 없습니다.

6. 프로젝트의 각 부분에 대한 코드

1.HTML code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 <title>jQuery指针时钟(附带日期)</title>

 <!--引入外部css样式-->

 <link rel="stylesheet" href="css/demo.css" rel="external nofollow" type="text/css" media="screen" />

</head>

<body>

 <!--引入jQuery库文件-->

 <script src="js/jquery-1.6.2.min.js"></script>

 <!--引入外部js文件-->

 <script src="js/script.js"></script>

 <p style="text-align:center;clear:both">

 </p>

</body>

</html>

로그인 후 복사

2.css code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

*

{

 margin:0;

 padding:0;

}

body

{

 background:#f9f9f9;

 color:#000;

 font:15px Calibri, Arial, sans-serif;

 text-shadow:1px 2px 1px #FFFFFF;

}

a,

a:visited

{

 text-decoration:none;

 outline:none;

 color:#fff;

}

a:hover

{

 text-decoration:underline;

 color:#ddd;

}

  /*the footer (尾部)*/

footer

{

 background:#444 url("../images/bg-footer.png") repeat;

 position:fixed;

 width:100%;

 height:70px;

 bottom:0;

 left:0;

 color:#fff;

 text-shadow:2px 2px #000;

 /*提高浏览器的兼容性*/

 -moz-box-shadow:5px 1px 10px #000;

 -webkit-box-shadow:5px 1px 10px #000;

 box-shadow:5px 1px 10px #000;

}

footer h1

{

 font:25px/26px Acens;

 font-weight:normal;

 left:50%;

 margin:0px 0 0 150px;

 padding:25px 0;

 position:relative;

 width:400px;

}

footer a.orig,

a.orig:visited

{

 background:url("../images/demo2.png") no-repeat right top;

 border:none;

 text-decoration:none;

 color:#FCFCFC;

 font-size:14px;

 height:70px;

 left:50%;

 line-height:50px;

 margin:12px 0 0 -400px;

 position:absolute;

 top:0;

 width:250px;

}

  /*styling for the clock(时钟样式)*/

#clock

{

 position: relative;

 width: 600px;

 height: 600px;

 list-style: none;

 margin: 20px auto;

 background: url('../images/clock.png') no-repeat center;

  

}

#seconds,

#minutes,

#hours

{

 position: absolute;

 width: 30px;

 height: 580px;

 left: 270px;

}

#date

{

 position: absolute;

 top: 365px;

 color: #666;

 right: 140px;

 font-weight: bold;

 letter-spacing: 3px;

 font-family: "微软雅黑";

 font-size: 30px;

 line-height: 36px;

}

#hours

{

 background: url('../images/hands.png') no-repeat left;

 z-index: 1000;

}

#minutes

{

 background: url('../images/hands.png') no-repeat center;

 width:25px;

 z-index: 2000;

}

 

#seconds

{

 background: url('../images/hands.png') no-repeat right;

 z-index: 3000;

}

로그인 후 복사

3.js code

(1 ) 필수 js 참조 패키지 다운로드(Baidu 또는 Google에서 알 수 있음)

(2) js 코드

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

$(document).ready(function () {

 

 //动态插入HTML代码,标记时钟 

 var clock = [

  '<ul id="clock">',

  '<li id="date"></li>',

  '<li id="seconds"></li>',

  '<li id="hours"></li>',

  '<li id="minutes"></li>',

  '</ul>'].join('');

 

 // 逐渐显示时钟,并把它附加到主页面中 

 $(clock).fadeIn().appendTo('body');

 

 //每一秒钟更新时钟视图的自动执行函数

 //也可以使用此方法: setInterval (function Clock (){})();

 (function Clock() {

  //得到日期和时间

  var date new Date().getDate(),  //得到当前日期

   hours = new Date().getHours(),  //得到当前小时

   minutes = new Date().getMinutes();  //得到当前分钟

   seconds = new Date().getSeconds(),  //得到当前秒

    ms = new Date().getMilliseconds();//得到当前毫秒

  //将当前日期显示在时钟上

  $("#date").html(date);

  //获取当前秒数,确定秒针位置

  var srotate = seconds + ms / 1000;

  $("#seconds").css({

   //确定旋转角度

   'transform''rotate(' + srotate * 6 + 'deg)',  

  });

  //获取当前分钟数,得到分针位置

  var mrotate = minutes + srotate / 60; 

  $("#minutes").css({

   'transform''rotate(' + mrotate * 6 + 'deg)',

   //提高浏览器的兼容性

   '-moz-transform''rotate(' + mrotate * 6 + 'deg)',

   '-webkit-transform''rotate(' + mrotate * 6 + 'deg)'

  });

  //获取当前小时,得到时针位置

  var hrotate = hours % 12 + (minutes / 60);

  $("#hours").css({

   'transform''rotate(' + hrotate * 30 + 'deg)',

   //提高浏览器的兼容性

   '-moz-transform''rotate(' + hrotate * 30 + 'deg)',

   '-webkit-transform''rotate(' + hrotate * 30 + 'deg)'

  });

  //每一秒后执行一次时钟函数

  setTimeout(Clock, 1000);

 })();

});

로그인 후 복사

4. 일부 필수 사진 자료(c는 여기에 하나씩 나열되거나 표시되지 않습니다)

참고:

1.Transform 속성

2.rotate() 메서드

관련 권장 사항:

캔버스를 사용하여 시계 구현 단계 만들기

JS+CSS를 설명하는 예 롤링 디지털 시계 효과

간단한 시계 효과 만들기

위 내용은 JavaScript 크리에이티브 시계 프로젝트에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿