[前端案例]百行代码实现炫酷时钟

百余行代码实现炫酷时钟

电脑右下角的时间是不是早就看腻了,字小而且样式单调,今天,就用百余行HTML + CSS + JavaScript代码实现一个网页版的炫酷时钟,当然也可以使用Electron封装前端代码,实现桌面版的炫酷时钟应用程序,话不多说,直接上效果图:


炫酷时钟

1.构造盒子雏形

在HTML标签中,我们可以把div比喻成一个盒子,在div标签中还可以嵌套div标签,这就好比大盒子中还装着一个或若干个小的盒子。每一个盒子都有一个边框(border),盒子内容与边框之间的距离称之为内边距(padding),两个盒子之间的距离称之为外边距(margin)。

盒子模型

在这个小demo中,使用一个大的div盒子包裹3个小的div盒子,分别用来显示时分秒,直接上代码:

<div id="time">
  <div><span id="hour">00</span><span>Hours</span></div>
  <div><span id="minute">00</span><span>Minutes</span></div>
  <div><span id="second">00</span><span>Seconds</span></div>
</div>

效果如下:

div

注:div标签默认没有边框,宽度和高度是根据div标签中的文字来决定的,为了更见明显的展示div盒子模型,在这个小demo中添加了边框和宽高的样式,就有了上图的效果。添加的样式代码如下:

#clock{
    
   width: 600px;
   height: 250px;
   border: solid 1px black;
   margin: 0 auto;
   margin-top: 50px;
}
   #time div{
    
   width: 150px;
   height: 230px;
   border: solid 1px red;
   margin: 5px 0 5px 30px;
   float: left;
}

2.使用CSS美化页面,实现炫酷效果

CSS可谓是女生的化妆品,能把单一枯燥的页面“化妆”的具有吸引力。首先给整个网页设置一个具有科技感的蓝黑色背景,然后将整个HTML元素水平垂直居中显示:

body{
   
    background: #060a1f;
}
#clock{
   
    min-height: 30vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

这里使用了flex的弹性布局方式,搭配justify-contentalign-items属性,属性值设为center,即可实现body中所有子元素水平垂直居中显示。

给3个小的div盒子设置样式,盒子中的字体样式、大小、背景颜色代码如下:

#clock #time div{
   
    position: relative;
    margin: 0 5px;
    -webkit-box-reflect:below 1px linear-gradient(transparent,#0004);
}
#clock #time div span{
   
    position: relative;
    display: block;
    width: 250px;
    height: 200px;
    background: #2196f3;
    color: #fff;
    font-weight: 300;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 8em;
    z-index: 10;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.2);
}
#clock #time div span:nth-child(2){
   
    height: 30px;
    font-size: 1.2em;
    letter-spacing: 0.2em;
    font-weight: 500;
    z-index: 9;
    box-shadow: none;
    background: #127fd6;
    text-transform: uppercase;
}
#clock #time div:last-child span{
   
    background: #ff006a;
}
#clock #time div:last-child span:nth-child(2){
   
    background: #ec0062;
}

其中box-reflect是CSS3中的倒影特效属性,-webkit-box-reflect是为了解决浏览器兼容问题,属性值below 1px linear-gradient(transparent,#0004)是指倒影在对象的下边1px处,使用线性渐变创建遮罩图像。

最终结果如下图:

css样式结果

3.使用JavaScript获取本地时间

使用js中的new Date()方法可以获取本地时间的时间戳,使用getHours()getMinutes()getSeconds()可以分别获取本地当前时间的时、分、秒。代码如下:

let h = new Date().getHours();
let m = new Date().getMinutes
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值