如何通过点击触发css3旋转效果
How to trigger css3 rotate effect by clicking?
我有两个div。一个应用旋转效果,另一个通过单击触发。
$(function() {
$("a").click(function() {
$("#d1").addClass(".spinEffect");
});
});
#d1,
#d2 {
width: 100px;
height: 100px;
background-color: red;
margin: 50px 50px 50px 50px;
}
#d2 {
background-color: green;
-webkit-animation: spin 10s infinite linear;
}
.spinEffect {
-webkit-animation: spin 0.5s 1 linear;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="d1">
</div>
<div id="d2">
</div>
<a href=#>click me</a>
这是演示页面。我知道这个问题应该在js中,有人能告诉我如何修改它吗?
当我移除.
时,它正在工作
但当我点击链接时,它只起作用一次。我该怎么解决?
如果你的addClass
附近有错误,你应该放$("#d1").addClass("spinEffect");
,而不是".spinEffect",.
在那里没用;)
对于第二个问题,只需在css 中添加infinite
.spinEffect{
-webkit-animation: spin 0.5s infinite linear;
}
编辑
如果你想让盒子每次点击按钮都转动一次,你可以用以下方法实现
$(function(){
$("a").click(function(){
var $d1 = $("#d1"); //little optimization because we will use it more than once
$d1.removeClass("spinEffect");
setTimeout(function(){$d1.addClass("spinEffect")},0);
});
});
你可能会问为什么setTimeout
,因为否则,类会被快速添加到CSS中以触发效果;)
您所要做的只是删除"."来自js 中的类名
JS:
$(function(){
$("a").click(function(){
$("#d1").addClass("spinEffect");
});
});
实际上,您可以完全在CSS中做到这一点,并完全避开javascript(假设目标浏览器支持:target
伪类)
:target
选择哪个元素的ID由url的哈希部分指定,例如:http://localhost/#d1
将是单击此答案中的链接后的url。
注意我意识到这意味着动画只会发生一次。因此,如果这是针对链接可以被多次点击的情况,那么一定要使用JS解决方案(尽管我认为你必须删除类并再次添加它才能重新触发动画)
HTML:
<div id="d1">
</div>
<div id="d2">
</div>
<a href="#d1">click me</a>
CSS:
#d1, #d2{
width: 100px;
height: 100px;
background-color: red;
margin: 50px 50px 50px 50px;
}
#d2{
background-color: green;
-webkit-animation: spin 10s infinite linear;
}
/* or #d1:target */
:target{
-webkit-animation: spin 0.5s 1 linear;
}
@-webkit-keyframes spin {
0% {-webkit-transform: rotate(0deg);}
100% {-webkit-transform: rotate(360deg);}
}
相关文章:
- HTML5、CSS3和/或JS中旋转CD上的音频播放器
- CSS3 点击旋转和缩放
- 'toggel'使用css3/jquery来回旋转元素
- css3旋转顶部和左侧坐标
- 为所有主流浏览器创建 css3 无限旋转
- 使用 css3 或 js 的连续旋转动画
- CSS3 变换从 360 度旋转到 0 度
- 非CSS3浏览器的JS中的CSS3图像旋转微调器
- 如何在IE中访问css3转换旋转
- 用css3绕中心旋转
- 如何使用javascript/css3设置绕轴旋转的动画onclick
- Bootstrap旋转木马-CSS3 PIE打破指标循环
- CSS3变换使用鼠标位置旋转
- CSS3变换使用鼠标位置旋转-第二阶段
- 将2D画布(图像+文本)应用于3D表面,并进行360度旋转/动画-可以使用HTML5/CSS3/Javascript或F
- 在KineticJS中,在使用css3旋转的画布上,事件;似乎工作不正常
- CSS3转换的替代方案:在CSS2或Javascript中旋转(xdeg)以旋转文本
- 如何通过点击触发css3旋转效果
- 卡翻转效果使用CSS3旋转,但有多个面取决于按钮按下
- 动画CSS3旋转单击上一个和下一个