JavaScript结合CSS Transform实现图片形变与动态时钟
作者:像素猫时间:2026-10-25 01:30:51浏览:531
本文介绍如何利用JavaScript结合CSS的transform属性实现点击改变图片形状的功能,涵盖位移、旋转、缩放和倾斜效果。同时扩展讲解transform在数字时钟案例中的应用,通过定时器更新指针角度实现动态走动效果,提供完整代码与效果图参考。
本文主要介绍如何使用JavaScript结合CSS的transform属性来实现图片在点击后的形状变化效果,供读者参考学习。
具体实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>transform的运用</title>
<style type="text/css">
#box{
width: 50px;
height: 50px;
background-color: red;
/*traslate 位移 rotate 旋转幅度 scale 放大幅度 skew倾斜*/
/*transform: translate(100px,200px) rotate(20deg) scale(2.0) skew(10deg);*/
}
</style>
</head>
<body>
<button id="btn">形变</button>
<div id="box"></div>
<script>
window.onload = function (){
var btn = document.getElementById("btn");
var box = document.getElementById("box");
var index = 0;
btn.onclick = function (){
index++;
box.style.transform = `translate(${index*100}px,${index*50}px) rotate(${index*10}deg) scale(${index*1.3})`;
}
}
</script>
</body>
</html>
以下是功能实现的效果图展示:
初始状态下,图片保持默认样式:

点击触发形变后,图片发生如下变化:

再次点击时,图片将继续进行形态变换。
接下来对transform的应用进行扩展,演示其在数字时钟走动效果中的实际运用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数字时钟案例</title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
#clock{
width: 600px;
height: 600px;
background: url("img/clock.jpg") no-repeat;
position: relative;
}
#hour,#minute,#second{
position: absolute;
width: 30px;
height: 600px;
left: 50%;
margin-left: -15px;
}
#hour{
background: url("img/hour.png") no-repeat;
}
#minute{
background: url("img/minute.png") no-repeat;
}
#second{
background: url("img/second.png") no-repeat;
}
</style>
</head>
<body>
<div id="clock">
<div id="hour"></div>
<div id="minute"></div>
<div id="second"></div>
</div>
<script type="text/javascript">
// 1.获取标签
var hour = document.getElementById("hour");
var minute = document.getElementById("minute");
var second = document.getElementById("second");
// 2.开启定时器 获取当前时间
setInterval(function (){
// 2.1获取当前的时间戳
var now = new Date();
// 2.2获取小时 分钟 秒
var s = now.getSeconds();
var m = now.getMinutes() + s/60;
var h = now.getHours()%12 + m/60;
// 2.3旋转
second.style.transform = `rotate(${s*6}deg)`;
minute.style.transform = `rotate(${m*6}deg)`;
hour.style.transform = `rotate(${h*30}deg)`;
},10)
</script>
</body>
</html>
以下是时钟运行的效果图(当前显示时间为八点零一):

以上就是本文的全部内容,希望能为读者提供有益的帮助,也欢迎大家继续支持本站。
作者最新文章
js-cookie 安装与基础用法:set、get、remove 详解
2026-11-05 16:35:06
适合JavaScript初学者的实战项目:制作简易待办事项列表
2026-11-05 16:17:07
JS打开新标签页时怎么通过URL传递参数
2026-11-05 12:21:08
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧
2026-11-05 09:55:00
JS 生成的统计图怎么导出为 PNG 图片或 PDF 文件?
2026-11-05 09:37:58
