JS动画在悬停时旋转
Posted
技术标签:
【中文标题】JS动画在悬停时旋转【英文标题】:JS animation spin on hover 【发布时间】:2016-10-27 09:12:49 【问题描述】:这是我关于 *** 的第一个问题。
想知道是否有人可以向我指出有关使用 JS/JQuery 动画按钮的解决方案/资源。
特别是,我无法理解的动画是在悬停时将圆形按钮旋转 180 度。
谢谢:)
【问题讨论】:
Create a Minimal, Complete, and Verifiable example 这可以证明你已经尝试过.. 如果您想要为悬停按钮设置动画,您可能需要查看 CSS 动画。你依赖的javascript越少越好。如果您仍想使用 javascript,这可能会有所帮助 developer.mozilla.org/en-US/docs/Web/API/Element/animate 我想你的答案在这里***.com/questions/15191058/… Codeschool 上有一个关于动画过渡和变换的教程,它非常简单明了并且充满了示例。 @Rayon 感谢您的提示 :) 【参考方案1】:你可以使用css关键帧
div
width: 100px;
height: 100px;
background: red;
position :relative;
-webkit-animation: mymove 1s infinite; /* Chrome, Safari, Opera */
animation: mymove 1s infinite;
/* Standard syntax */
@keyframes mymove
from transform: rotateY(0deg);
to transform: rotateY(360deg);
【讨论】:
谢谢!有没有办法让它在悬停时旋转 180 度,然后当指针离开元素时,它会旋转回来吗?现在它在悬停时来回旋转。【参考方案2】:您可以使用 CSS 为按钮设置动画。
在http://www.w3schools.com/css/css3_animations.asp,您可以了解 CSS 动画。您可能还想在http://www.w3schools.com/css/css3_transitions.asp 了解 CSS 过渡。如果您要使用 JS 创建动画,您要做的就是在要设置动画的 html 元素上设置 CSS 过渡,然后使用 JS 设置 CSS 属性,例如 background-color
和 transform
。您可以使用 element.style.property
访问元素的 CSS。将property
替换为您要更改或添加的属性。
【讨论】:
感谢您花时间为我指明正确的方向!【参考方案3】:我找到的最直观的答案是这样的:
<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
<div class="flipper">
<div class="front">
<!-- front content -->
</div>
<div class="back">
<!-- back content -->
</div>
</div>
</div>
/*CSS entire container, keeps perspective */
.flip-container
perspective: 1000px;
/* flip the pane when hovered */
.flip-container:hover .flipper, .flip-container.hover .flipper
transform: rotateY(180deg);
.flip-container, .front, .back
width: 320px;
height: 480px;
/* flip speed goes here */
.flipper
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
/* hide back of pane during swap */
.front, .back
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
/* front pane, placed above back */
.front
z-index: 2;
/* for firefox 31 */
transform: rotateY(0deg);
/* back, initially hidden pane */
.back
transform: rotateY(180deg);
可以在这里找到进一步的解释:https://davidwalsh.name/css-flip
【讨论】:
以上是关于JS动画在悬停时旋转的主要内容,如果未能解决你的问题,请参考以下文章