Home > Web Front-end > JS Tutorial > Clock effect implemented by jQuery+css (compatible with all browsers)_jquery

Clock effect implemented by jQuery+css (compatible with all browsers)_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-05-16 15:17:32
Original
1826 people have browsed it

The example in this article describes the clock effect implemented by jQuery+css. Share it with everyone for your reference, the details are as follows:

The screenshot of the running effect is as follows:

There is not much modification here, the function is simply implemented. In addition, the setTimeout method of js is used. When the time is long, there will be a certain delay. It is recommended to execute it every few minutes. Clock calibration! Haha, there are errors. Anyway, I didn’t correct it for you.

The specific code is as follows:

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

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<head>

  <title></title>

  <script src="jquery-1.7.1.min.js" type="text/javascript"></script>

  <script type="text/javascript" >

    var addRadian = Math.PI / 30;

    var wrapper = null;

    var minutes = 0;

    var hours = 0;

    var secondsLineLength = 14;

    var secondLineLength = 20;

    function cloneObj(obj1) {

      var tempObj = {};

      for (var i in obj1) {

        if (obj1.hasOwnProperty(i)) {

          tempObj[i] = obj1[i];

        }

      }

      return tempObj;

    }

    function createMinute(po, r, text) {

      var minute = [];

      minute.push('<div class="minute" style="left:');

      minute.push(po.x);

      minute.push('px; top:');

      minute.push(po.y);

      minute.push('px;" >');

      minute.push(text);

      minute.push('</div>');

      wrapper.append(minute.join(''));

    }

    function createHour(po, r, text) {

      var minute = [];

      minute.push('<div class="hour" style="left:');

      minute.push(po.x);

      minute.push('px; top:');

      minute.push(po.y);

      minute.push('px;" >');

      minute.push(text);

      minute.push('</div>');

      wrapper.append(minute.join(''));

    }

    function initSeconds(text, center, range) {

      var now_seconds = new Date().getSeconds();

      now_seconds = now_seconds > 0 &#63; now_seconds - 1 : 0;

      for (var i = 0; i < secondsLineLength + 1; i++) {

        createFlower(center, '●', range, (i + 1) * secondLineLength, Math.PI / 2 + (now_seconds) * addRadian, true, i == secondsLineLength &#63; true : false);

      }

    }

    function initMinutes(r, text, center) {

      var x = 0,

        y = 0;

      for (var i = 0; i < 60; i++) {

        x = center.x - Math.cos(Math.PI / 2 + i * addRadian) * (r + secondLineLength);

        y = center.y - Math.sin(Math.PI / 2 + i * addRadian) * (r + secondLineLength);

        createMinute({x: x,y: y}, r, text);

      }

      minutes = new Date().getMinutes();

      waldedMinute(minutes);

    }

    function initHours(r, text, center) {

      var x = 0,

        y = 0;

      for (var i = 0; i < 60; i+=5) {

        x = center.x - Math.cos(Math.PI / 2 + i * addRadian) * (r + secondLineLength);

        y = center.y - Math.sin(Math.PI / 2 + i * addRadian) * (r + secondLineLength);

        createHour({ x: x, y: y }, r, text);

      }

      hours = new Date().getHours();

      waldedHour(hours);

    }

    function waldedMinute(index) {

      var index = Math.floor((index % 60)) > 0 &#63; Math.floor((index % 60)) + 1 : 0;

      wrapper.find(".minute:lt(" + index + ")").css('color', "green");

      if (index > 0) {

        wrapper.find(".minute:eq(0)").css('color', '#DDDDDD');

      }

    }

    function waldedHour(index) {

      var index = Math.floor((index%12)) > 0 &#63; Math.floor((index%12)) + 1:0;

      wrapper.find(".hour:lt(" + index + ")").css('color', "green");

      if(index > 0) {

        wrapper.find(".hour:eq(0)").css('color', '#494949');

      }

    }

    function animation(obj, r, radian, range, center, text, last) {

      logNowTime();

      radian += addRadian;

      var x = center.x - Math.cos(radian) * r;

      var y = center.y - Math.sin(radian) * r;

      obj.css({ "left": x, "top": y });

      if (last && radian > Math.PI * 5 / 2 - 0.1) {

        radian = Math.PI / 2;

        minutes++;

        if (minutes < 60) {

        } else {

          if (minutes % 60 == 0) {

            hours++;

            if (hours % 12 != 0) {

            } else {

              wrapper.find(".hour").css('color', "#494949");

            }

            waldedHour(hours);

          } else {

            wrapper.find(".minute").css('color', "#DDDDDD");  

          }

        }

        waldedMinute(minutes);

      }

      setTimeout(function () {

        animation(obj, r, radian, range, center, text, last);

      }, 1000);

    }

    function createFlower(center, text, range, r, radian, autoAnimate, last) {

      var flower = [];

      flower.push('<div class="second"');

      flower.push(' style="left:');

      flower.push(center.x);

      flower.push('px; top:');

      flower.push(center.y);

      flower.push('px;');

      flower.push(autoAnimate &#63; '" >' : 'color:red;" >');

      flower.push(text);

      flower.push('</div>');

      flower = $(flower.join(''));

      flower.appendTo(wrapper);

      //var r = (index + 1) * secondLineLength;

      if (autoAnimate) {

        animation(flower, r, radian, range, center, text, last);

      }

    }

    // 查看当前时间

    function logNowTime() {

      var date = new Date(),

        hour = date.getHours(),

        minute = date.getMinutes(),

        second = date.getSeconds();

      hour = hour < 10 &#63; "0" + hour : hour;

      minute = minute < 10 &#63; "0" + minute : minute;

      second = second < 10 &#63; "0" + second : second;

      $("#time").html("当前时间-" + hour + ":" + minute + ":" + second);

    }

    $(document).ready(function () {

      wrapper = $("#wrapper"),

        width = wrapper.width(),

        height = wrapper.height(),

        offLeft = parseInt(wrapper.offset().left),

        range = {

          x: offLeft,

          y: 0,

          x1: offLeft + width,

          y1: height

        },

        center = {

          x: Math.round(width / 2) + offLeft,

          y: Math.round(height / 2)

        };

      initHours(secondLineLength * secondsLineLength + 40, '●', center);

      initMinutes(secondLineLength * secondsLineLength + 20, '●', center);

      initSeconds('●', center, range);

    }); 

  </script>

  <style type="text/css" >

    body { margin:0; padding:0; }

    #wrapper { margin:0 auto; width:1000px; height:780px; background:black; }

    .second { width:12px; height:12px; position:absolute; text-shadow:1px 1px 1px green; color:Green; }

    .minute { color:#DDDDDD; position:absolute;}

    .hour { color:#494949; position:absolute;}

    #time { font-size:30px; line-height:30px; text-shadow:2px 2px 2px green; text-align:center; }

  </style>

</head>

<body>

<div id="time"></div>

<div id="wrapper" >

</div>

</body>

</html>

Copy after login

Readers who are interested in more content related to jQuery special effects can check out the special topics on this site: "Summary of common classic special effects of jQuery" and "Summary of jQuery animation and special effects usage"

I hope this article will be helpful to everyone in jQuery programming.

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template