css怎么样制作钟表

html-css012

css怎么样制作钟表,第1张

代码如下:

<!DOCTYPE html>

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

<head>

<meta charset="utf-8" />

<title>canvas实例--制作时钟</title>

</head>

<body>

<canvas id="canvas" width="500" height="500" >

您的浏览器版本太低啦!可以换了!

</canvas>

<script>

//获取canvas

var canvas = document.getElementById("canvas")

//设置环境

var cxt = canvas.getContext("2d")

//制作时钟的函数

function DrawClock() {

//清除画布

cxt.clearRect(0,0,500,500)

//获取当前时间的时,分,秒

var now = new Date()

var hour = now.getHours()

var min = now.getMinutes()

var sec = now.getSeconds()

//小时必须获取浮点型(小时+分数--->转化为的小时)

hour = hour + min / 60

//将24小时转换为12小时

hour = hour >12 ? hour - 12 : hour

//制作表盘

cxt.beginPath()

cxt.lineWidth = 10

cxt.strokeStyle = "#ABCDEF"

cxt.arc(250, 250, 200, 0, 360, false)

cxt.stroke()

cxt.closePath()

//刻度

//时针

for (var i = 0i <12i++) {

cxt.save()

cxt.lineWidth = 7

cxt.strokeStyle = "red"

//设置0,0点

cxt.translate(250, 250)

//再设置旋转角度

cxt.rotate(i * 30 * Math.PI / 180)

cxt.beginPath()

cxt.moveTo(0, -170)

cxt.lineTo(0, -190)

cxt.closePath()

cxt.stroke()

cxt.restore()

}

//分针

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

//为避免不同颜色的重叠,

//在时针刻度与分针刻度重叠的位置,不画分针

if (i % 5 == 0) continue

cxt.save()

//设置刻度粗细

cxt.lineWidth = 5

cxt.strokeStyle = "purple"

//设置画布的0,0点

cxt.translate(250, 250)

//设置旋转角度

cxt.rotate(i * 6 * Math.PI / 180)

//画分针刻度

cxt.beginPath()

cxt.moveTo(0, -180)

cxt.lineTo(0, -190)

cxt.closePath()

cxt.stroke()

cxt.restore()

}

//时针

cxt.save()

//设置时针风格

cxt.lineWidth = 7

cxt.strokeStyle = "pink"

//设置异次元空间的0,0点

cxt.translate(250, 250)

//设置旋转角度

cxt.rotate(hour * 30 * Math.PI / 180)

cxt.beginPath()

cxt.moveTo(0, -140)

cxt.lineTo(0, 10)

cxt.closePath()

cxt.stroke()

cxt.restore()

//分针

cxt.save()

//设置分针风格

cxt.lineWidth = 5

cxt.strokeStyle = "orange"

//设置异次元空间的0,0点

cxt.translate(250, 250)

//设置旋转角度

cxt.rotate(min * 6 * Math.PI / 180)

cxt.beginPath()

cxt.moveTo(0, -160)

cxt.lineTo(0, 15)

cxt.closePath()

cxt.stroke()

cxt.restore()

//秒针

cxt.save()

//风格

cxt.strokeStyle = "yellow"

cxt.lineWidth = 3

//重置0,0点

cxt.translate(250, 250)

//设置旋转角度

cxt.rotate(sec*6*Math.PI/180)

//画图

cxt.beginPath()

cxt.moveTo(0, -170)

cxt.lineTo(0, 20)

cxt.stroke()

//画出时针,分针,秒针的交叉点

cxt.beginPath()

cxt.arc(0, 0, 5, 0, 360, false)

cxt.closePath()

//设置填充样式

cxt.fillStyle = "blue"

cxt.fill()

//设置笔触样式--->秒针已设置

cxt.stroke()

//设置秒针前端的小圆点

cxt.beginPath()

cxt.arc(0, -150, 5, 0, 360, false)

cxt.closePath()

//设置填充样式

cxt.fillStyle = "blue"

cxt.fill()

//设置笔触样式

cxt.stroke()

cxt.closePath()

cxt.restore()

}

//调用函数

DrawClock()

//设置时钟转动起来

setInterval(DrawClock, 1000)

</script>

</body>

</html>

css没有这个功能。

要做倒计时表,至少你得用JS或VBS。CSS只是用来控制页面布局、页面风格等。喝在说CSS里也可以控制JS脚本运行,但是实际上还是JS脚本在运行,而并非CSS语言自身的功能。。

而用JS或VBS做一个倒计时表,百度上搜一下,代码太多了。。

用定时器setTimeout('clock()',1000)就行了(其中clock()就是你用来显示时间的自定义funcion。

可以的,可以实时动态显示当前时间与当前日期,代码结构简洁、清晰、明了,(网络搜集,供参考)

知识的汇总:

1.HTML5

2.CSS3

3.JavaScript

重难点汇总:

1.各个指针的旋转角度的获取,首先要明确以下概念:

一周为360度、12小时、60分钟、60秒;

公式:一周的度数/一周的时间;

即得出时针每过一小时要旋转30度;

分针每过一分钟要旋转6度;

秒针每过一秒钟要旋转6度;

下面是代码部分:

HTML:

<div id="box">

<div id="h"></div>

<div id="min"></div>

<div id="s"><div class="cen"></div></div>

<div id="data"></div>

</div>

CSS3:

body{

background-color: #aaa

margin: 0px

padding: 0px

}

#box{

width: 400px

height: 400px

border-radius: 100%

background: url(img/4706.jpg_wh860.jpg)0px 0px no-repeat

background-size: 400px

position: absolute

left: 500px

top: 200px

}

#h{

width: 100px

height: 10px

background-color: red

position: relative

top: 195px

left: 200px

}

#min{

width: 140px

height: 10px

background-color: yellow

position: relative

top: 185px

left: 200px

}

#s{

width: 180px

height: 10px

background-color: blue

position: relative

top: 175px

left: 200px

}

.cen{

width: 10px

height: 10px

background-color: white

border-radius: 100%

}

#data{

position: relative

top: 100px

left: 150px

color: red

font-size: 20px

}

JavaScript:

function tim(){

var d = new Date(),//获取当前系统时间

year = d.getFullYear(),//得到当前年份

mon = d.getMonth(),//得到当前月份

date = d.getDate(), //得到当前日期

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

minutes = d.getMinutes(), //得到当前分钟

seconds = d.getSeconds()//得到当前秒

var hou = ""

if(hours>12){

hou = "下午"

}

else{

hou = "上午"

}

document.getElementById("data").innerHTML= year+"年"+mon+"月"+date+"日"+"

"+hou

var n = document.getElementById("s")//获取秒针ID

n.style.transform = "rotate("+(seconds*6-90)+"deg)"//通过当前秒数,得到秒针旋转度数

n.style.transformOrigin = "left"//设置秒针旋转的基点

var i = document.getElementById("min")//获取分针ID

i.style.transform = "rotate("+(minutes*6-90)+"deg)"//通过当前分钟数,得到分针旋转度数

i.style.transformOrigin = "left"//设置分针旋转的基点

var h = document.getElementById("h")//获取时针ID

h.style.transform = "rotate("+((hours*30)+(minutes*0.5)-90)+"deg)"//通过当前小时数,得到时针旋转度数

h.style.transformOrigin = "left"//设置时针旋转的基点

}

setInterval("tim()",1000)