如何设置元素360度循环旋转
旋转是CSS3中一种比较常见的动画效果,可以用来实现比较炫酷的效果,而设置元素360度循环旋转就是其中一种应用。下面就让我们来看看如何实现。
使用CSS3的transform属性实现旋转
CSS3中提供了transform属性,可以对元素进行旋转、缩放、倾斜、移动等操作。其中,旋转操作涉及到旋转角度和旋转中心点。
旋转角度可以使用数值或指定单位的角度值,例如deg度数、rad弧度、grad梯度。当旋转角度为正值时,元素顺时针旋转;当旋转角度为负值时,元素逆时针旋转。
旋转中心点可以使用关键字指定,例如center元素中心点、top顶部中心点、bottom底部中心点、left左边中心点、right右边中心点;也可以使用数值或指定单位的百分比值来指定中心点位置。
下面的代码实现了对一个div元素逆时针旋转360度的效果:
div {
width: 100px;
height: 100px;
background-color: red;
border-radius: 50%;
animation: rotate 2s linear infinite;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-360deg);
}
}
上面的代码中,使用了keyframes关键字创建了一个名为rotate的动画,从0度旋转到-360度(逆时针旋转),动画时间为2秒,重复次数为无限次。
如何点击停止元素的旋转
在部分场景下,如果元素一直旋转,会导致用户体验不佳。我们可以通过添加hover效果或点击事件来控制元素的旋转。
使用:hover效果控制旋转
可以通过添加:hover伪类来控制元素的停止,当鼠标移动到元素上时,动画停止;移开时,动画继续。
下面的代码实现了当鼠标移动到一个div元素上时,停止旋转的效果:
div:hover {
animation-play-state: paused;
}
上面的代码中,使用了animation-play-state属性将动画的播放状态设置为paused,当鼠标移动到元素上时,动画停止;移开时,动画继续。
使用JavaScript点击事件控制旋转
除了使用CSS的:hover效果,我们也可以使用JavaScript的点击事件来控制元素的停止。具体实现过程如下:
首先,需要添加一个按钮的HTML代码用于控制旋转的停止和播放:
<button id="btn">点击停止</button>
然后,需要在CSS中添加animation-play-state属性,将动画的播放状态设置为paused:
div {
animation-name: rotate;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-play-state: running;
}
.paused {
animation-play-state: paused;
}
最后,在JavaScript中添加点击事件并切换CSS类,控制动画的停止和播放:
var btn = document.getElementById("btn");
var div = document.getElementsByTagName("div")[0];
btn.addEventListener("click", function() {
if (div.classList.contains("paused")) {
div.classList.remove("paused");
btn.innerText = "点击停止";
} else {
div.classList.add("paused");
btn.innerText = "点击播放";
}
});
总结
以上就是设置元素360度循环旋转并且控制旋转停止的方法。通过使用CSS3的transform属性,可以实现元素的旋转动画;通过添加:hover效果或JavaScript的点击事件,可以控制动画的停止。