jquery+html5制作超酷的圆盘时钟表

自己封装的一个用HTML5+jQuery写的时钟表

代码:

?


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

<!DOCTYPE html PUBLIC "-//W3C//h2D XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/h2D/xhtml1-transitional.h2d">

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

<head>

<title>超酷数码钟表</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs

/jquery/1.10.2/jquery.min.js"></script>

<script type="text/javascript">

//引用的是在线jquery地址,如果不行请自行下载切换

(function($){

  $.fn.drawClock = function(options){

    var mainId = $(this);

     

    //设置默认参数

    var defaultOptions = {

      ‘width‘: ‘300px‘,

      ‘height‘: ‘300px‘,

      ‘margin‘: ‘200px auto‘,

      ‘border‘: ‘1px solid #888‘,

      ‘border-radius‘: ‘50%‘,

      ‘box-shadow‘: ‘2px 2px 4px #111‘

    };

    var options = $.extend(defaultOptions, options);

     

    mainId.css({

      ‘width‘: options.width,

      ‘height‘: options.height,

      ‘margin‘: options.margin,

      ‘border‘: options.border,

      ‘border-radius‘: options[‘border-radius‘],

      ‘box-shadow‘: options[‘box-shadow‘],

      ‘position‘: ‘relative‘

    }).css({

      ‘background‘: ‘-webkit-gradient(radial, ‘ + mainId.width()/2 + ‘ ‘ + mainId.height()/2 + ‘, 0, ‘ + mainId.width()/2 + ‘ ‘ + mainId.height()/2 + ‘, ‘ + mainId.width()/2 + ‘, from(#ffe), to(#eee))‘,

      ‘background‘: ‘-moz-radial-gradient(circle closest-side, #ffe 0%, #eee 100%)‘

    });

     

    //钟表盘中心圆

    $("<div id=‘circle‘></div>").appendTo(mainId).css({

      ‘width‘: ‘20px‘,

      ‘height‘: ‘20px‘,

      ‘border-radius‘: ‘50%‘,

      ‘box-shadow‘: ‘0 0 5px rgba(0,0,0,0.8)‘,

      ‘position‘: ‘absolute‘,

      ‘z-index‘: 999,

      ‘background‘: ‘-webkit-gradient(radial, ‘ + mainId.width()/2 + ‘ ‘ + mainId.height()/2 + ‘, 0, ‘ + mainId.width()/2 + ‘ ‘ + mainId.height()/2 + ‘, ‘ + mainId.width()/2 + ‘, from(#ffe), to(#eee))‘,

      ‘background‘: ‘-moz-radial-gradient(circle, #eee 30%, #ffe 100%)‘

    }).css({

      ‘left‘: mainId.width()/2 - $(‘#circle‘).width()/2,

      ‘top‘: mainId.height()/2 - $(‘#circle‘).height()/2

    });

     

    var dateTime = new Date();

    var oHours = dateTime.getHours();

    var oMinutes = dateTime.getMinutes();

    var oSeconds = dateTime.getSeconds();

     

    //初始化时分秒

    var hPointer = drawPointer(mainId.width()/2, mainId.height()/2, mainId.width()/2*(3/6), 5, "#333", -90+oHours*30+oMinutes*6/12);

    var mPointer = drawPointer(mainId.width()/2, mainId.height()/2, mainId.width()/2*(4/6), 4, "#666", -90+oMinutes*6);

    var sPointer = drawPointer(mainId.width()/2, mainId.height()/2, mainId.width()/2*(5/6), 3, "#f00", -90+oSeconds*6);

     

    //运动时分秒

    var timer = setInterval(function(){

      dateTime = new Date();

      oHours = dateTime.getHours();

      oMinutes = dateTime.getMinutes();

      oSeconds = dateTime.getSeconds();   

      hPointer.css({‘transform‘: ‘rotate(‘ + (-90+oHours*30+oMinutes*6/12) + ‘deg)‘});

      mPointer.css({‘transform‘: ‘rotate(‘ + (-90+oMinutes*6) + ‘deg)‘});

      sPointer.css({‘transform‘: ‘rotate(‘ + (-90+oSeconds*6) + ‘deg)‘});

    }, 1000);

     

     

    //绘制钟表刻度

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

      var width = 3, height = 6, oBcolor = ‘#111‘;

      if(i%5 == 0){

        width = 5;

        height = 10;

      }

      if(i%15 == 0){

        oBcolor = ‘red‘;

      }

      $("<div class=‘clockMark‘></div>").appendTo(mainId).css({

        ‘width‘: width,

        ‘height‘: height,

        ‘position‘: ‘absolute‘,

        ‘top‘: 0,

        ‘left‘: mainId.width()/2,

        ‘background‘: oBcolor,

        ‘transform‘: ‘rotate(‘ + i*6 + ‘deg)‘,

        "transform-origin": "0 " + mainId.width()/2+‘px‘

      });

    }

     

    //绘制钟表指针

    function drawPointer (startx, starty, width, height, bcolor, angle) {

      var oPointer = $("<div></div>");

      oPointer.appendTo(mainId).css({

        ‘width‘: width,

        ‘height‘: height,

        ‘position‘: ‘absolute‘,

        ‘top‘: starty,

        ‘left‘: startx,

        ‘background‘: bcolor,

        ‘transform‘: ‘rotate(‘ + angle + ‘deg)‘,

        ‘transform-origin‘: ‘0 0‘

      });

      return oPointer;

    }

     

    return this;

  }

})(jQuery);

</script>

<script type="text/javascript">

$(function(){

  $(‘#clock‘).drawClock();

});

</script>

</head>

 

<body>

  <div id="clock"></div>

</body>

</html>

演示图:

软件工程师薪水

php工程师待遇

前端工程师

以上所述就是本文的全部内容了,希望大家能够喜欢。

您可能感兴趣的文章:

时间: 2024-07-28 15:57:27

jquery+html5制作超酷的圆盘时钟表的相关文章

超酷的圆盘时钟表

<!DOCTYPE html PUBLIC "-//W3C//h2D XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/h2D/xhtml1-transitional.h2d"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jQuery和CSS3超酷表单美化插件

这是一款效果非常精美炫酷的jQuery和CSS3联系方式表单美化插件.大多数网站上都有让用户填写的联系方式表单,一个设计良好的表单能够大大的提升用户的体验度.该表单美化插件在原生HTML表单的基础上进行加工,并使用jQuery来制作label动画,使表单样式更加大方得体. 这个表单美化插件中包含了常用的表单元素:输入框.下拉框.单选按钮.复选框和文本框. 在线演示:http://www.htmleaf.com/Demo/201503121507.html 下载地址:http://www.html

HTML5 SVG超酷运动模糊动画特效

这是一款效果十分炫酷的HTML5 SVG制作的运动模糊动画特效.该SVG运动模糊特效有三种效果:画廊效果.模态窗口效果和侧边栏菜单效果.它们使用SVG过滤器和js及css相配合,在元素运动时产生动态模糊的炫酷效果. 运动模糊是一种技术,广泛应用于一般的运动图形和动画,使运动更加流畅自然.维基百科对运动模糊的解释是:运动模糊是明显的在静止图像或图像序列如电影或动画的快速移动的物体.它是当图像被记录的变化对单帧记录过程中,由于快速运动或长时间曝光的结果. 效果演示:http://www.htmlea

jQuery和CSS3超酷3D页面切换导航菜单插件

这是一款效果非常酷的jQuery和CSS3 3D页面切换导航菜单特效插件.该导航菜单插件是汉堡包隐藏菜单,每个菜单项的图标使用SVG来制作,鼠标滑过图标时有动画效果,点击某一个菜单项后,页面会在3D空间进行切换,效果非常炫酷. 效果演示:http://www.htmleaf.com/Demo/201504111660.html 下载地址:http://www.htmleaf.com/jQuery/Menu-Navigation/201504111659.html

jQuery和CSS3超酷全屏视觉差幻灯片特效

这是一款效果非常炫酷的jQuery和CSS3全屏视觉差幻灯片特效.该幻灯片采用半透明的遮罩层作为文字说明层.在幻灯片切换时,文字有动态放大的效果.图片和文字的移动形成了一种微妙的视觉差效果. 效果演示:http://www.htmleaf.com/Demo/201506162049.html 下载地址:http://www.htmleaf.com/jQuery/Slideshow-Scroller/201506162048.html

jQuery和CSS3超酷三面板幻灯片插件

这是一款效果非常酷的jquery和css3三面板幻灯片特效插件.该幻灯片插件将一张图片分割为三部分,在幻灯片切换的时候,图片的每一部分都从不同方向进入显示,效果非常不错. 你可以使用左右导航箭头或下面的原点导航来控制幻灯片图片的切换.该幻灯片被设计为可以加载无限图片的模式,所以你可以任意添加你想要播放的图片的数量. 在线演示:http://www.htmleaf.com/Demo/201503271583.html 下载地址:http://www.htmleaf.com/jQuery/Slide

jQuery和CSS3超酷3d翻转图片幻灯片插件

这是一款效果非常炫酷的jQuery和CSS3 3d翻转图片幻灯片插件.这个幻灯片插件开始的时候图片都堆叠在一起,当用户点击了其中的某张图片后,该图片会以3D翻转的方式"飞"到堆叠图片的最前面. 在该幻灯片插件中使用了 CSS3 transition.CSS3 animations 和 CSS3 transforms,并用jQuery来处理鼠标点击事件. 在线演示:http://www.htmleaf.com/Demo/201502081346.html 下载地址:http://www.

HTML5/CSS3超酷进度条 不同进度多种颜色

下面我们来看看实现这款进度条的过程和源码,代码主要由HTML.CSS以及jQuery组成,实现过程也相对比较简单.HTML代码: <div id="wrapper">     <div class="loader-container">           <div class="meter">0</div>           <span class="runner"&g

PS如何制作超酷3D字效果

效果图.jpg (24.94 KB) 2008-4-4 21:46 1.打开PS 执行文件-新建-新建550X400像素空白文档 1.jpg (36.69 KB) 2008-4-4 21:46 2.输入所要制作的黑色文字(字体最好选粗厚些的字体)本教程字体汉仪方叠体简 2.jpg (24.95 KB) 2008-4-4 21:46 3.对文字层点右键将文字栅格化(一定要栅格化)将矢量文字变成像素图像 3.jpg (30.8 KB) 2008-4-4 21:46 快捷键CTRL+T(自由变换)将文