时间:2021-07-01 10:21:17 帮助过:4人阅读
下面就是这个滚动时钟动画的全部代码:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>CSS3+JS滚动数字时钟代码-脚本之家</title>
- <style>
- 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;}
- </style>
- </head>
- <body>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- </p>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- <p class="num">3</p>
- <p class="num">4</p>
- <p class="num">5</p>
- <p class="num">6</p>
- <p class="num">7</p>
- <p class="num">8</p>
- <p class="num">9</p>
- </p>
- <p class="colon"></p>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- <p class="num">3</p>
- <p class="num">4</p>
- <p class="num">5</p>
- </p>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- <p class="num">3</p>
- <p class="num">4</p>
- <p class="num">5</p>
- <p class="num">6</p>
- <p class="num">7</p>
- <p class="num">8</p>
- <p class="num">9</p>
- </p>
- <p class="colon"></p>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- <p class="num">3</p>
- <p class="num">4</p>
- <p class="num">5</p>
- </p>
- <p class="column">
- <p class="num">0</p>
- <p class="num">1</p>
- <p class="num">2</p>
- <p class="num">3</p>
- <p class="num">4</p>
- <p class="num">5</p>
- <p class="num">6</p>
- <p class="num">7</p>
- <p class="num">8</p>
- <p class="num">9</p>
- </p>
- <script>
- '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);
- </script>
- </body>
- </html>
注意:其中最上面的是CSS样式内容,大家可以在其中进行调整颜色字体等
- <style>
- 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;}
- </style>
JS代码主要就是控制动画的滚动效果,CSS用来控制数字的大小等内容。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
在JS中怎么让图片居中悬浮
JS实现标签滚动切换
JS实现鼠标跟随特效
以上就是HTML+JS实现滚动数字的时钟的详细内容,更多请关注Gxl网其它相关文章!