html5数字滑动时钟代码

来源:https://www.sucaihuo.com/js/2492.html 2017-07-21 22:59浏览(884) 收藏

一款html5数字滑动时钟代码,数字的切换时一种滑动的动画效果,用了不同的颜色突出显示当前数字,整体效果还时比较酷炫的,喜欢的童鞋请收下吧。
html5数字滑动时钟代码
分类:日期时间 > 计时器 难易:初级
查看演示 下载资源 下载积分: 20 积分

页面的head部分,设置好页面元素的样式即可,代码如下:

body {
  text-align: center;
  background-color: #0e141b;
  color: rgba(224, 230, 235, 0.18);
  font-family: 'Microsoft YaHei','Lantinghei SC','Open Sans',Arial,'Hiragino Sans GB','STHeiti','WenQuanYi Micro Hei','SimSun',sans-serif;
  font-weight: 300;
  overflow: hidden;
}

.column,
.colon {
  display: inline-block;
  vertical-align: top;
  font-size: 86px;
  line-height: 86px;
}

.column {
  -webkit-transition: -webkit-transform 300ms;
  transition: -webkit-transform 300ms;
  transition: transform 300ms;
  transition: transform 300ms, -webkit-transform 300ms;
}

.colon {
  -webkit-transition: -webkit-transform 300ms;
  transition: -webkit-transform 300ms;
  transition: transform 300ms;
  transition: transform 300ms, -webkit-transform 300ms;
  -webkit-transform: translateY(calc(50vh - 43px));
          transform: translateY(calc(50vh - 43px));
}
.colon:after {
  content: ':';
}

.num {
  -webkit-transition: opacity 500ms, text-shadow 100ms;
  transition: opacity 500ms, text-shadow 100ms;
  opacity: 0.025;
}
.num.visible {
  opacity: 1.0;
  text-shadow: 1px 1px 0px #336699;
}
.num.close {
  opacity: 0.08;
}
.num.far {
  opacity: 0.15;
}
.num.distant {
  opacity: 0.1;
}

页面的body部分,设置好多个数字的容器即可,代码如下:

<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
</div>
<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
  <div class="num">6</div>
  <div class="num">7</div>
  <div class="num">8</div>
  <div class="num">9</div>
</div>
<div class="colon"></div>
<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
</div>
<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
  <div class="num">6</div>
  <div class="num">7</div>
  <div class="num">8</div>
  <div class="num">9</div>
</div>
<div class="colon"></div>
<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
</div>
<div class="column">
  <div class="num">0</div>
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
  <div class="num">6</div>
  <div class="num">7</div>
  <div class="num">8</div>
  <div class="num">9</div>
</div>

页面的底部,通过javascriptseh来响应数字的滑动特效,代码如下:

var size = 86;
var columns = Array.from(document.getElementsByClassName('column'));
var d = undefined,
    c = undefined;
var classList = ['visible', 'close', 'far', 'far', 'distant', 'distant'];
var use24HourClock = true;

function padClock(p, n) {
	return p + ('0' + n).slice(-2);
}

function getClock() {
	d = new Date();
	return [use24HourClock ? d.getHours() : d.getHours() % 12 || 12, d.getMinutes(), d.getSeconds()].reduce(padClock, '');
}

function getClass(n, i2) {
	return classList.find(function (class_, classIndex) {
		return i2 - classIndex === n || i2 + classIndex === n;
	}) || '';
}

var loop = setInterval(function () {
	c = getClock();

	columns.forEach(function (ele, i) {
		var n = +c[i];
		var offset = -n * size;
		ele.style.transform = 'translateY(calc(50vh + ' + offset + 'px - ' + size / 2 + 'px))';
		Array.from(ele.children).forEach(function (ele2, i2) {
			ele2.className = 'num ' + getClass(n, i2);
		});
	});
}, 200 + Math.E * 10);
评论0
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791

1 2