本文介绍如何使用 JavaScript 实现图片在平面内的旋转效果。通过操作 DOM 元素的绝对定位与 CSS 样式,结合 setInterval 定时器循环更新旋转角度,实现持续的平面旋转动画。
JavaScript 实现图片平面旋转效果
本文详细介绍如何使用 JavaScript 实现图片在平面内的旋转效果,供读者参考学习。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片旋转</title>
<style type="text/css" >
#div1{ position:relative;height:800px; border:1px solid red;}
#div1 img{ position:absolute;}
</style>
</head>
<body >
<div id="div1" >
<img src="https://www.jb51.net/images/logo.gif" />
<img src="https://www.jb51.net/images/logo.gif" />
<img src="https://www.jb51.net/images/logo.gif" />
<img src="https://www.jb51.net/images/logo.gif" />
<img src="https://www.jb51.net/images/logo.gif" />
<img src="https://www.jb51.net/images/logo.gif" />
</div>
<script type="text/javascript" >
var centerx = 400; //圆心X
var centery = 300; //圆心Y
var r = 300; //半径
var oimages = document.getElementById("div1").getElementsByTagName("IMG"); //图片集合
var cnt = oimages.length; //图片数
var da = 360 / cnt; //图片间隔角度
var a0 = 0; //已旋转角度
var timer;
for (var i = 0; i < cnt; i++) {
oimages[i].onmouseover = stop;
oimages[i].onmouseout = start;
}
function posimgs() {
for (var i = 0; i < cnt; i++) {
oimages[i].style.left = centerx + r * Math.cos((da * i + a0) / 180 * Math.PI) + "px";
oimages[i].style.top = centery + r * Math.sin((da * i + a0) / 180 * Math.PI) + "px";
}
}
// posimgs();
function start() {
timer = window.setInterval("posimgs();a0++;", 100);
}
function stop() {
window.clearInterval(timer);
}
start();
</script>
</body>
</html>
如需了解更多 JavaScript 相关知识,可参考本站的《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》以及《JavaScript数学运算用法总结》等专题文章。
希望上述内容对您的 JavaScript 编程实践有所帮助。