css 2D 转换

html

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画</title>
<link rel="stylesheet" type="text/css" href="test.css">
</head>
<body>


<div>
这个是一个刚刚开始效果
</div>
<hr >
<div class="div2">
这个是改变后的div
</div>

</body>

</html>



css


div{
width: 100px;
height: 100px;
background-color: blue;
}


/*translate 浮动*/
/* .div2{  
translate(X,Y)
transform: translate(200px,100px);
-webkit 支持chrome safari
-webkit-transform:translate(200px,100px);
-ms 支持ie
-ms-transform:translate(200px,100px);
-o 支持opera
-o-transform:translate(200px,100px);
-moz 支持 Firefox
-moz-transform:translate(200px,100px);
} */




/* .div2{
rotate 旋转
transform: rotate(200deg);
-webkit-transform:rotate(200deg);
} */




/*scale(宽度,高度)*/
/* .div2{
transform: scale(1,1);
-webkit-transform:scale(1,1);
} */




/*skew(X,Y) 旋转*/
/* .div2{
transform: skew(50deg,50deg);
-webkit-transform:skew(50deg,50deg);
} */




/*matrix 矩阵*/
/* .div2{
transform: matrix(1, 0, 0, 1, 30, 30);;
-webkit-transform: matrix(1, 0, 0, 1, 30, 30);
} */


div{
width: 100px;
height: 100px;
background-color: blue;
}


/*translate 浮动*/
/* .div2{  
translate(X,Y)
transform: translate(200px,100px);
-webkit 支持chrome safari
-webkit-transform:translate(200px,100px);
-ms 支持ie
-ms-transform:translate(200px,100px);
-o 支持opera
-o-transform:translate(200px,100px);
-moz 支持 Firefox
-moz-transform:translate(200px,100px);
} */




/* .div2{
rotate 旋转
transform: rotate(200deg);
-webkit-transform:rotate(200deg);
} */




/*scale(宽度,高度)*/
/* .div2{
transform: scale(1,1);
-webkit-transform:scale(1,1);
} */




/*skew(X,Y) 旋转*/
/* .div2{
transform: skew(50deg,50deg);
-webkit-transform:skew(50deg,50deg);
} */




/*matrix 矩阵*/
/* .div2{
transform: matrix(1, 0, 0, 1, 30, 30);;
-webkit-transform: matrix(1, 0, 0, 1, 30, 30);
} */


当使用CSS2D变换制作动态网页时钟时,我们通常利用CSS的`transform`属性以及JavaScript来更新动画效果。以下是基本步骤: 1. **HTML结构**:首先创建一个简单的HTML结构,包含一个`<div>`元素作为时钟容器。 ```html <div id="clock"></div> ``` 2. **CSS基础样式**:设置初始样式,包括圆角、大小和定位等,并定义一些关键帧动画的基础样式,如旋转角度和时间格式。 ```css #clock { width: 200px; height: 200px; border-radius: 50%; background-color: #f8f9fa; position: relative; text-align: center; display: flex; justify-content: center; align-items: center; font-size: 64px; } ``` 3. **CSS动画**:使用CSS的关键帧动画(@keyframes),定义时针、分针和秒针的移动路径。例如: ```css @keyframes rotateClock { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } #hour-hand, #minute-hand, #second-hand { position: absolute; width: 6px; animation: rotateClock 1s steps(360, end) infinite, moveHands ease-in-out 1s infinite; } ``` 4. **JavaScript交互**:通过JavaScript获取当前时间并计算时针、分针和秒针的角度。然后,每隔一段时间改变它们的CSS `transform-origin` 和 `transform-angle` 来模拟移动。 ```javascript function updateClock() { // 获取当前时间 var now = new Date(); var hour = now.getHours(); // 小于12小时制 var minute = now.getMinutes(); var second = now.getSeconds(); // 设置指针角度 document.getElementById('hour-hand').style.transform = `rotate(${((hour % 12) * 30 + minute / 2) * 6}deg)`; document.getElementById('minute-hand').style.transform = `rotate(${minute * 6}deg)`; document.getElementById('second-hand').style.transform = `rotate(${second * 6}deg)`; // 每隔一秒钟再次更新 setTimeout(updateClock, 1000); } updateClock(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值