悬停时 JS 动画旋转
JS animation spin on hover
这是我关于 Whosebug 的第一个问题。
想知道是否有人可以向我指出使用 JS/JQuery 制作动画按钮的 solution/resource。
特别是,我无法理解的动画是在悬停时将圆形按钮旋转 180 度。
谢谢:)
您可以使用 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);
}
您可以使用 CSS 为按钮设置动画。
在 http://www.w3schools.com/css/css3_animations.asp you can learn about CSS animations. You may also want to learn about CSS transitions at http://www.w3schools.com/css/css3_transitions.asp。如果您要使用 JS 创建动画,您要做的是在要设置动画的 HTML 元素上设置一个 CSS 过渡,然后使用 JS 设置 CSS 属性,例如 background-color
和 transform
。您可以使用 element.style.property
访问元素的 CSS。将 property
替换为您要更改或添加的 属性。
我找到的最直观的答案是:
<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
这是我关于 Whosebug 的第一个问题。
想知道是否有人可以向我指出使用 JS/JQuery 制作动画按钮的 solution/resource。
特别是,我无法理解的动画是在悬停时将圆形按钮旋转 180 度。
谢谢:)
您可以使用 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);
}
您可以使用 CSS 为按钮设置动画。
在 http://www.w3schools.com/css/css3_animations.asp you can learn about CSS animations. You may also want to learn about CSS transitions at http://www.w3schools.com/css/css3_transitions.asp。如果您要使用 JS 创建动画,您要做的是在要设置动画的 HTML 元素上设置一个 CSS 过渡,然后使用 JS 设置 CSS 属性,例如 background-color
和 transform
。您可以使用 element.style.property
访问元素的 CSS。将 property
替换为您要更改或添加的 属性。
我找到的最直观的答案是:
<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