css3实现数字滚动效果,JS+CSS实现滚动数字时钟效果

这篇博客介绍了如何使用JavaScript和CSS3创建一个滚动的数字时钟动画效果,适用于网页开场动画或时间显示。文章提供了完整的代码,包括CSS样式和JS逻辑,详细解释了数字滚动和颜色字体的调整方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇内容我们用js配合css样式表来实现一个滚动时钟的动画效果,这个效果一般都是用在网页开场动画以及区域的时间显示中,非常好看,动画效果也很个性,我们先来看下运行后的效果:

4b023ad58cf94eef0cc248abefcfd1ee.png

下面就是这个滚动时钟动画的全部代码:

CSS3+JS滚动数字时钟代码-脚本之家

body{text-align: center;background-color: #0e141b;color: rgba(224, 230, 235, 0.89);font-family: 'Roboto Condensed', 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.35;}

.num.far{opacity: 0.15;}

.num.distant{opacity: 0.1;}

0
1
2
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9

'use strict';

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);

注意:其中最上面的是CSS样式内容,大家可以在其中进行调整颜色字体等

body{text-align: center;background-color: #0e141b;color: rgba(224, 230, 235, 0.89);font-family: 'Roboto Condensed', 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.35;}

.num.far{opacity: 0.15;}

.num.distant{opacity: 0.1;}

JS代码主要就是控制动画的滚动效果,CSS用来控制数字的大小等内容。

本篇内容是脚本之家的原创,转载请留网址,感谢你对脚本之家的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值