html弧形列表效果,利用HTML5实现个性圆弧时钟动画特效

特效描述:利用HTML5实现 个性圆弧时钟 动画特效。利用HTML实现个性圆弧时钟动画特效

代码结构

1. HTML代码

cccc

var canvas = document.getElementById("canvas");

var ctx = canvas.getContext("2d");

ctx.strokeStyle = '#00ffff';

ctx.lineWidth = 17;

ctx.shadowBlur = 15;

ctx.shadowColor = '#00ffff'

function degToRad(degree) {

var factor = Math.PI / 180;

return degree * factor;

}

function renderTime() {

var now = new Date();

var today = now.toDateString();

var time = now.toLocaleTimeString();

var hrs = now.getHours();

var min = now.getMinutes();

var sec = now.getSeconds();

var mil = now.getMilliseconds();

var smoothsec = sec + (mil / 1000);

var smoothmin = min + (smoothsec / 60);

//Background

gradient = ctx.createRadialGradient(250, 250, 5, 250, 250, 300);

gradient.addColorStop(0, "#03303a");

gradient.addColorStop(1, "black");

ctx.fillStyle = gradient;

//ctx.fillStyle = 'rgba(00 ,00 , 00, 1)';

ctx.fillRect(0, 0, 500, 500);

//Hours

ctx.beginPath();

ctx.arc(250, 250, 200, degToRad(270), degToRad((hrs * 30) - 90));

ctx.stroke();

//Minutes

ctx.beginPath();

ctx.arc(250, 250, 170, degToRad(270), degToRad((smoothmin * 6) - 90));

ctx.stroke();

//Seconds

ctx.beginPath();

ctx.arc(250, 250, 140, degToRad(270), degToRad((smoothsec * 6) - 90));

ctx.stroke();

//Date

ctx.font = "25px Helvetica";

ctx.fillStyle = 'rgba(00, 255, 255, 1)'

ctx.fillText(today, 175, 250);

//Time

ctx.font = "25px Helvetica Bold";

ctx.fillStyle = 'rgba(00, 255, 255, 1)';

ctx.fillText(time + ":" + mil, 175, 280);

}

setInterval(renderTime, 40);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个圆形轨迹,可以使用CSS的transform属性来旋转元素。具体实现步骤如下: 1. 创建一个div元素,设置宽度和高度相等,且为圆形。 ``` <div class="circle"></div> .circle { width: 100px; height: 100px; border-radius: 50%; } ``` 2. 使用CSS的animation属性来定义动画,使元素绕圆心旋转。需要设置动画循环次数为无限循环,并指定动画时间和旋转方式(linear 或 ease-in-out)。 ``` .circle { animation: spin 5s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ``` 3. 如果要实现弧形轨迹,可以使用CSS的translateX和translateY属性来移动元素的位置。设置元素的初始位置为圆心,然后在动画中使用translateX和translateY属性来移动元素。 例如,要实现元素在圆形轨迹上向右上移动的效果,可以将元素的初始位置设置为圆心,然后在动画的25%处向右上移动50px,再在动画的50%处向下移动50px,最后在动画的75%处向左下移动50px。 ``` .circle { animation: arc 5s ease-in-out infinite; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } @keyframes arc { 0% { transform: translate(-50%, -50%) rotate(0deg); } 25% { transform: translate(-50px, -50px) rotate(90deg); } 50% { transform: translate(-50px, 50px) rotate(180deg); } 75% { transform: translate(50px, 50px) rotate(270deg); } 100% { transform: translate(50px, -50px) rotate(360deg); } } ``` 通过类似的方式,可以实现元素在圆形轨迹上任意方向移动的效果

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值