逆战小白提升日記逆战小白提升日記——网红时钟罗盘制作网红时钟罗盘制作
最近很火的时钟罗盘,下面是我写的一个效果图,我写的这个比较复杂一点,所以今天只介绍时钟部分。(最下方有源代码,喜欢的友友可以自行复制最下方有源代码,喜欢的友友可以自行复制)
我们先介绍布局思路
1.,我们把它分成四个盒子,分别存储秒数,分钟数,小时数,星期数。,我们把它分成四个盒子,分别存储秒数,分钟数,小时数,星期数。
2.先把刻度数全部定位在各自盒子右边(左右),中间(上下)部分,然后依次旋转,形成罗盘布局。先把刻度数全部定位在各自盒子右边(左右),中间(上下)部分,然后依次旋转,形成罗盘布局。
3.让盒子以不同的速度旋转,(链接到时间),产生时钟效果。让盒子以不同的速度旋转,(链接到时间),产生时钟效果。
下面我们来分析具体代码
**html部分**
<!--
-->
这就是一个简单的布局,生成刻度内容我们使用js生成比较方便,
定义刻度数组;(定义刻度数组;(js))
var w = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
var h = ["零点", "零一点", "零两点", "零三点", "零四点", "零五点", "零六点", "零七点", "零八点", "零九点", "零十点", "十一点", "十二点", "十三点", "十四点", "十五点", "十六点", "十七点", "十八点", "十九点", "二十点", "二十一点",
"二十二点", "二十三点"];
var min = ["零零分", "零一分", "零二分", "零三分", "零四分", "零五分", "零六分", "零七分", "零八分", "零九分", "零十分", "十一分", "十二分", "十三分", "十四分", "十五分", "十六分", "十七分", "十八分", "十九分", "二十分", "二十一
分", "二十二分", "二十三分", "二十四分", "二十五分", "二十六分", "二十七分", "二十八分", "二十九分", "三十分", "三十一分", "三十二分", "三十三分", "三十四分", "三十五分", "三十六分", "三十七分", "三十八分", "三十九分", "四十
分", "四十一分", "四十二分", "四十三分", "四十四分", "四十五分", "四十六分", "四十七分", "四十八分", "四十九分", "五十分", "五十一分", "五十二分", "五十三分", "五十四分", "五十五分", "五十六分", "五十七分", "五十八分", "五十
九分"];
var s = ["零零秒", "零一秒", "零二秒", "零三秒", "零四秒", "零五秒", "零六秒", "零七秒", "零八秒", "零九秒", "零十秒", "十一秒", "十二秒", "十三秒", "十四秒", "十五秒", "十六秒", "十七秒", "十八秒", "十九秒", "二十秒", "二十一秒",
"二十二秒", "二十三秒", "二十四秒", "二十五秒", "二十六秒", "二十七秒", "二十八秒", "二十九秒", "三十秒", "三十一秒", "三十二秒", "三十三秒", "三十四秒", "三十五秒", "三十六秒", "三十七秒", "三十八秒", "三十九秒", "四十秒",
"四十一秒", "四十二秒", "四十三秒", "四十四秒", "四十五秒", "四十六秒", "四十七秒", "四十八秒", "四十九秒", "五十秒", "五十一秒", "五十二秒", "五十三秒", "五十四秒", "五十五秒", "五十六秒", "五十七秒", "五十八秒", "五十九
秒"];
在在div标签里循环生成标签里循环生成span标签,并将数组里的刻度写到各自标签,并将数组里的刻度写到各自span标签里去,这里我创建了一个调用程序,其中标签里去,这里我创建了一个调用程序,其中
n是数组名称,是数组名称,
name是是div盒子的盒子的id属性值,属性值,
clas是生成是生成span标签的标签的class属性值(属性值(js))
//循环生成span标签
function creat(n, name, clas) {
var mark = ' ';
for (i = 0; i <= n.length - 1; i++) {
mark += `${n[i]}`;
}
name.innerHTML = mark;
}
设置标签样式,将所有设置标签样式,将所有span标签定位在右中位置,并设置旋转中心点为标签定位在右中位置,并设置旋转中心点为div盒子中心(盒子中心(css))
div{width: 80px;height: 20px;line-height: 20px;}
#p{width: 500px;height: 30px;background: silver;opacity: 0.3;position:absolute;top: 486px;left: -10px;}
#s{position:absolute; width: 1000px;height: 1000px;}
#s span{position: absolute;top: 490px;font-size: 20px;transform-origin: 500px 10px;}