0
点赞
收藏
分享

微信扫一扫

基于原生JS的运动版实时时钟的设计


图片img:

本来想着压缩一下上传的,但是不允许,如果你们有既省空间有方便上传图片视频的方法,欢迎留言分享给我。

基于原生JS的运动版实时时钟的设计_原生JS

 

基于原生JS的运动版实时时钟的设计_css_02

 

基于原生JS的运动版实时时钟的设计_前端开发_03

 

基于原生JS的运动版实时时钟的设计_html_04

 

基于原生JS的运动版实时时钟的设计_css_05

 

基于原生JS的运动版实时时钟的设计_html_06

 

基于原生JS的运动版实时时钟的设计_原生JS_07

 

基于原生JS的运动版实时时钟的设计_前端开发_08

 

基于原生JS的运动版实时时钟的设计_css_09

 

基于原生JS的运动版实时时钟的设计_IT_10

 

基于原生JS的运动版实时时钟的设计_html_11

 

基于原生JS的运动版实时时钟的设计_css_12

效果图:

基于原生JS的运动版实时时钟的设计_html_13

HTML代码部分:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<link rel="stylesheet" href="css/倒计时.css" />

</head>

<body>

<div id="wrapper">

<div id="box">

<!--小时里的十位图片-->

<div class="time" id="aHour">

<div></div>

<div></div>

</div>

<!--小时里的个位图片-->

<div class="time" id="bHour">

<div></div>

<div></div>

</div>

<!--符号图片-->

<div class="colon">

</div>

<!--分钟里的十位图片-->

<div class="time" id="aMinute">

<div></div>

<div></div>

</div>

<!--分钟里的个位图片-->

<div class="time" id="bMinute">

<div></div>

<div></div>

</div>

<!--符号图片-->

<div class="colon">

</div>

<!--秒数里的十位图片-->

<div class="time" id="aSecond">

<div></div>

<div></div>

</div>

<!--秒数里的个位图片-->

<div class="time" id="bSecond">

<div></div>

<div></div>

</div>

</div>

</div>

</body>

</html>

 

CSS代码部分:

html,

body {

margin: 0;

padding: 0;

}

#wrapper {

width: 400px;

height: 70px;

padding: 20px 20px;

text-align: center;

margin: 100px auto;

/*border: 1px solid black;*/

}

#box {

width: 400px;

height: 70px;

position: relative;

overflow: hidden;

/*border: 1px solid blue;*/

}

#box>div {

width: 50px;

height: 70px;

/*border: 1px solid red;*/

float: left;

}

.time {

position: relative;

}

.time div:first-child {

background-image: url(../img/0.jpg);

position: absolute;

top: 0;

left: 0;

width: 50px;

height: 70px;

}

.time div:last-child {

background-image: url(../img/0.jpg);

position: absolute;

top: 70px;

left: 0;

width: 50px;

height: 70px;

}

.colon {

background-image: url(../img/c.jpg);

}

JS代码部分:

 

 //所有的符号图片div

var oColon = document.getElementsByClassName("colon");

// 获取小时十位数图片div对象

var aHourDiv = document.getElementById("aHour");

// 获取小时个位数图片div对象

var bHourDiv = document.getElementById("bHour");

// 获取分钟十位数图片div对象

var aMunuteDiv = document.getElementById("aMinute");

// 获取分钟个位数图片div对象

var bMinuteDiv = document.getElementById("bMinute");

// 获取秒数十位数图片div对象

var aSecondDiv = document.getElementById("aSecond");

// 获取秒数个位数图片div对象

var bSecondDiv = document.getElementById("bSecond");

//获取当前系统时间

var oDate = new Date();

// 获取的时间除于10,得到小时数的十位数,有可能有小数,直接使用向下取整忽略,其他位数的都是类推

//当前时间得到的小时位数的十位

var aHour = Math.floor(oDate.getHours() / 10);

//当前时间得到的小时位数的个位

var bHour = oDate.getHours() % 10;

//当前时间得到的分钟位数的十位

var aMinute = Math.floor(oDate.getMinutes() / 10);

//当前时间得到的分钟位数的个位

var bMinute = oDate.getMinutes() % 10;

//当前时间得到的秒数位数的十位

var aSecond = Math.floor(oDate.getSeconds() / 10);

//当前时间得到的秒数位数的个位

var bSecond = oDate.getSeconds() % 10;



// 获取到每个数值之后立刻更改页面上的图片数值

//改变小时十位的图片

changeImage(aHourDiv, aHour);

//改变小时个位的图片

changeImage(bHourDiv, bHour);

//改变分钟十位的图片

changeImage(aMunuteDiv, aMinute);

//改变分钟个位的图片

changeImage(bMinuteDiv, bMinute);

//改变秒数十位的图片

changeImage(aSecondDiv, aSecond);

//改变秒数个位的图片

changeImage(bSecondDiv, bSecond);

// 根据获取的时间数字改变图片的函数

function changeImage(oDiv, time) {

var oDivs = oDiv.getElementsByTagName("div");

oDivs[0].style.backgroundImage = 'url(img/'+time+'.jpg)';

};

// 单独调用一次,因为下面的那句代码要延迟一秒后才能调用,跟系统时间慢一秒,所以要提前调用

showTime();

//每隔一秒,检测时,分,秒所在的图片是否需要改变

setInterval(showTime, 1000);

var bDate;//每隔一秒存储系统最新时间

function showTime() {

bDate = new Date();

//如果之前存储的小时十位和现在系统的小时十位数字不一样,则改变图片,且移动

if (aHour != Math.floor(bDate.getHours() / 10)) {

aHour = Math.floor(bDate.getHours() / 10);

move(aHourDiv, aHour);

}

//如果之前存储的小时个位和现在系统的小时个位数字不一样,则改变图片,且移动

if (bHour != Math.floor(bDate.getHours() % 10)) {

bHour = Math.floor(bDate.getHours() % 10);

move(bHourDiv, bHour);

}

//如果之前存储的分钟十位和现在系统的分钟个位数字不一样,则改变图片,且移动

if (aMinute != Math.floor(bDate.getMinutes() / 10)) {

aMinute = Math.floor(bDate.getMinutes() / 10);

move(aMunuteDiv, aMinute);

}

//如果之前存储的分钟个位和现在系统的分钟个位数字不一样,则改变图片,且移动

if (bMinute != Math.floor(bDate.getMinutes() % 10)) {

bMinute = Math.floor(bDate.getMinutes() % 10);

move(bMinuteDiv, bMinute);

}

//如果之前存储的秒数十位和现在系统的秒数十位数字不一样,则改变图片,且移动

if (aSecond != Math.floor(bDate.getSeconds() / 10)) {

aSecond = Math.floor(bDate.getSeconds() / 10);

move(aSecondDiv, aSecond);

}

//每隔一秒,都应该改变秒数个位的图片

bSecond = Math.floor(bDate.getSeconds() % 10);

move(bSecondDiv, bSecond);

//每隔一秒,符号切换

for (var i = 0; i < oColon.length; i++) {

if (bSecond % 2 == 0) {

oColon[i].style.backgroundImage = "url(img/c.jpg)";

} else {

oColon[i].style.backgroundImage = "url(img/b.jpg)";

}

}



};

//下面显示时间的图片,移动到上面的函数

function move(oDiv, time) {

var oDivs = oDiv.getElementsByTagName("div");

//切换下面隐藏的图片,然后往上移动出来

oDivs[1].style.backgroundImage = 'url(img/'+time+'.jpg)';

var timer = setInterval(function(){

//每70毫秒,移动的距离为7px

oDiv.style.top = oDiv.offsetTop - 7 + "px";



if (parseFloat(oDiv.style.top) <= -70) {

//当第一张图片移出屏幕时,则立马切换到第一张

oDiv.style.top = 0;

//第一张的图片切换成第二张图片,做到过渡重合

oDivs[0].style.backgroundImage = 'url(img/'+time+'.jpg)';

//取消定时器

clearInterval(timer);

}

}, 70)



};

如有误,欢迎指出!

 

举报

相关推荐

0 条评论