html+css罗盘式旋转时钟

效果图

HTML代码


 
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>旋转时钟</title>
		
	<style>
	  
		@font-face {
            font-family: unidreamLED;
            /* src: url("./UnidreamLED.ttf"); */
        }
 
        body {
            font-size: 0px;
            height: 100%;
            width: 100%;
            padding: 0;
            margin: 0;
            position: absolute;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #71767D;
            overflow: hidden;
            background-color: #141929;
            font-family: unidreamLED;
        }
 
        .NowData {
            background-image: -webkit-linear-gradient(bottom, rgb(192 192 192), rgb(241 100 171));
            background-size: 100% 20px;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
 
        .yearBox {
            height: 7vh;
            width: 7vh;
            position: absolute;
            display: flex;
            font-size: 10px;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            transition: 1s;
            background-image: -webkit-linear-gradient(bottom, rgb(192 192 192), rgb(120 8 220));
            background-size: 100% 20px;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
 
        .mounthBox {
            height: 14vh;
            width: 14vh;
            position: absolute;
            display: flex;
            align-items: center;
            border-radius: 50%;
            transition: 1s;
        }
 
        .dayBox {
            height: 21vh;
            width: 21vh;
            border-radius: 50%;
            display: flex;
            align-items: center;
            position: absolute;
            transition: 1s;
        }
 
        .hourBox {
            height: 28vh;
            width: 28vh;
            position: absolute;
            display: flex;
            align-items: center;
            transition: 1s;
            border-radius: 50%;
        }
 
        .minuteBox {
            height: 35vh;
            width: 35vh;
            position: absolute;
            display: flex;
            align-items: center;
            border-radius: 50%;
            transition: 1s;
        }
		
		.secondBox {
            height: 42vh;
            width: 42vh;
            display: flex;
            align-items: center;
            position: absolute;
            border-radius: 50%;
            transition: 1s;
        }
		.text {
            height: 49vh;
            width: 49vh;
            position: absolute;
            display: flex;
            align-items: center;
            border-radius: 50%;
            transition: 1s;
			font-weight:900
        }
		</style>
</head>
 
<body>	
		
 	<div class="secondBox"></div>
	 <div class="minuteBox"></div>
	<div class="hourBox"></div>
	<div class="dayBox"></div>
	<div class="mounthBox"></div>
	<div class="yearBox"></div> 
	<!-- 文字展示 -->
	<div class="text"></div>
	
</body>
</html>
		<script>
        

		var text_content=['','龙','腾','虎','跃',',','驰','骋','不','息'];
		var app_text=text_content;
		
		var text_len=text_content.length;
		//文字展示
		let text1 =''
		for (i = 0; i < 60; i++) {
			let onediv = `<div id = "text${i+1}" style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i)*-6}deg);"> -</div>`
			text1 +=onediv
		}
		
        document.querySelector('.text').innerHTML = text1
		
		
		let sencond =''
        for (i = 0; i < 60; i++) {
            let onediv = `<div id = "sencond${i+1}" style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i-1)*-6}deg);"> ${i+1} 秒</div>`
            sencond = sencond + onediv
        }
        document.querySelector('.secondBox').innerHTML = sencond
        let minute = ``
        for (i = 0; i < 60; i++) {
            let onediv = `<div id = "minute${i+1}"  style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i)*-6}deg);"> ${i+1} 分</div>`
            minute = minute + onediv
        }
        document.querySelector('.minuteBox').innerHTML = minute
        let hour = ``
        for (i = 0; i < 24; i++) {
            let onediv = `<div id = "hour${i+1}" style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i)*-15}deg);"> ${i+1} 时</div>`
            hour = hour + onediv
        }
        document.querySelector('.hourBox').innerHTML = hour
        let day = ``
        for (i = 0; i < 31; i++) {
            let onediv = `<div id = "day${i+1}" style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i)*-11.25}deg);"> ${i+1} 日</div>`
            day = day + onediv
        }
        document.querySelector('.dayBox').innerHTML = day
        let mounth = ``
        for (i = 0; i < 12; i++) {
            let onediv = `<div id = "mounth${i+1}" style="font-size: 10px;width: 100%;text-align: right;position: absolute;display: inline-block;transform: rotate(${(i)*-30}deg);"> ${i+1} 月</div>`
            mounth = mounth + onediv
        }
        document.querySelector('.mounthBox').innerHTML = mounth
 
        var sencond360 = 0
        var Minute360 = 0
        var hour360 = 0
        var day360 = 0
        var mounth360 = 0
 
        var oldsencond = 0
        var oldMinute = 0
        var oldhour = 0
        var oldday = 0
        var oldmounth = 0
 
        function transformBox() {
            let nowDate = new Date()
            let sencond = nowDate.getSeconds()
            let minute = nowDate.getMinutes()
            let hour = nowDate.getHours()
            let day = nowDate.getDate()
            let mounth = nowDate.getMonth()
            let year = nowDate.getFullYear()
            if (sencond === 0 && oldsencond !== sencond) {
                sencond360 = sencond360 + 1
            }
            if (minute === 0 && oldMinute !== minute) {
                Minute360 = Minute360 + 1
            }
            if (hour === 0 && oldhour !== hour) {
                hour360 = hour360 + 1
            }
            if (day === 1 && oldday !== day) {
                day360 = day360 + 1
            }
            if (mounth === 0 && oldmounth !== mounth) {
                mounth360 = mounth360 + 1
            }
            document.querySelector('.secondBox').style.transform = `rotate(${sencond360*360 + (sencond-1)*6}deg)`
            document.querySelector('.minuteBox').style.transform = `rotate(${Minute360*360 + (minute-1)*6}deg)`
            document.querySelector('.hourBox').style.transform = `rotate(${hour360*360 + (hour-1)*15}deg)`
            document.querySelector('.dayBox').style.transform = `rotate(${day360*360 + (day-1)*11.25}deg)`
            document.querySelector('.mounthBox').style.transform = `rotate(${mounth360*360 + (mounth)*30}deg)`
            document.querySelector('.yearBox').innerHTML = year + ' 年'
            let nowDates = document.querySelectorAll('.NowData')
            nowDates.forEach(element => {
                element.classList = ''
            });
            document.querySelector(`#sencond${sencond+1}`).classList = 'NowData'
            document.querySelector(`#minute${minute===0?'60':minute}`).classList = 'NowData'
            document.querySelector(`#hour${hour===0?'24':hour}`).classList = 'NowData'
            document.querySelector(`#day${day}`).classList = 'NowData'
            document.querySelector(`#mounth${mounth+1}`).classList = 'NowData'
			
			//文本高亮
			var text_num=0;
			var text_val=text_content.shift();
			text_content.push(text_val)
		

			
			
			text_append=text_content[text_num];
			if(text_append===undefined){
				text_append='';
			}
			console.log(text_val)
			
			text_num=app_text.indexOf(text_val)+1;
			document.querySelector(`#text${1}`).classList = 'NowData'
			if(text_num>1){
				document.querySelector(`#text${sencond+1}`).innerHTML = ''
			}
			
			document.querySelector(`#text${1}`).innerHTML = text_val
			document.querySelector(`#text${sencond-1}`).innerHTML = '-'

			text_num=text_num-1;
			if(text_num==text_len){
				console.log('==')
			}
			console.log(text_len)
			if(text_num==0){
				text_num=60;//text_len
				document.querySelector(`#text${sencond+1}`).innerHTML = ''
			}
			
			console.log(text_num)
			//document.querySelector(`#text${text_num+1}`).innerHTML = ''

			
			
            oldsencond = sencond
            oldMinute = minute
            oldhour = hour
            oldday = day
            oldmounth = mounth
        }
        transformBox()
        setInterval(() => {
            transformBox()
        }, 1000);
    </script>
 
      

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大理是我来自的家乡,这个地方具有丰富多样的自然风光和独特的文化魅力,所以我决定用HTMLCSS建立一个响应网站来展现我的家乡。 首先,我会使用HTML来构建网页的基本结构。我会创建一个导航栏,其中包含有关大理的主要信息,如历史、地理位置、名胜古迹等等。在网页的主体部分,我会添加一些图片和文字,以展示大理的美丽风景和独特文化。我还会包括一个专门的栏目,介绍一些当地的特色美食和民俗活动。这样的设计能够让访问者快速获得想要的信息,同时也能够更好地了解大理的特点和特色。 接下来,我会利用CSS来进行网页的美化和排版。我会为导航栏和页面内容添加合适的背景颜色和字体样,以增加网站的美观性。我会使用媒体查询来实现网页的响应设计,确保在不同的屏幕尺寸下都能够有良好的展示效果。我会为图片添加适当的边框和阴影,增加整体的层次感和立体感。同时,我还会使用CSS动画来为网页添加一些交互效果,比如图片的渐变显示和导航栏的悬浮效果,以更好地吸引访问者的注意力。 最后,我会对网站进行细节调整和优化,确保在不同的浏览器和设备上都能够正常运行和显示。我会检查和修复可能出现的问题,比如排版错乱和图片加载不出来等等。我还会优化网页的加载速度,以提升用户体验,比如对图片和脚本进行压缩和缓存处理。 通过使用HTMLCSS来建立一个响应网站,我相信可以更好地展示我的家乡大理的美丽和魅力。我会尽力创造一个优秀的用户体验,让更多的人对大理产生兴趣,并且愿意来这里旅游和体验当地的文化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值