【发布时间】:2014-07-04 21:29:27
【问题描述】:
我想了解如何在悬停时制作旋转或旋转图像。我想知道如何在以下代码中使用 CSS 模拟该功能:
img {
border-radius: 50%;
}
<img src="http://i.imgur.com/3DWAbmN.jpg" />
【问题讨论】:
标签: css hover css-transitions css-transforms
我想了解如何在悬停时制作旋转或旋转图像。我想知道如何在以下代码中使用 CSS 模拟该功能:
img {
border-radius: 50%;
}
<img src="http://i.imgur.com/3DWAbmN.jpg" />
【问题讨论】:
标签: css hover css-transitions css-transforms
您可以使用带有rotate() 的 CSS3 过渡来在悬停时旋转图像。
img {
transition: transform .7s ease-in-out;
}
img:hover {
transform: rotate(360deg);
}
<img src="https://i.stack.imgur.com/BLkKe.jpg" width="100" height="100"/>
这是一个小提琴DEMO
更多信息和参考:
【讨论】:
这很简单。
您为此图像创建一个 css 属性。
img { transition: all 0.3s ease-in-out 0s; }
你添加这样的动画:
img:hover
{
cursor: default;
transform: rotate(360deg);
transition: all 0.3s ease-in-out 0s;
}
【讨论】:
transition: NUMBER METHOD 而不是METHOD NUMBER
如果要旋转内联元素,应先将内联元素设置为inline-block。
i {
display: inline-block;
}
i:hover {
animation: rotate-btn .5s linear 3;
-webkit-animation: rotate-btn .5s linear 3;
}
@keyframes rotate-btn {
0% {
transform: rotate(0);
}
100% {
transform: rotate(-360deg);
}
}
【讨论】:
这是我的代码,它在悬停时翻转并在悬停时翻转。
CSS:
.flip-container {
background: transparent;
display: inline-block;
}
.flip-this {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
}
.flip-container:hover .flip-this {
transition: 0.9s;
transform: rotateY(180deg);
}
HTML:
<div class="flip-container">
<div class="flip-this">
<img width="100" alt="Godot icon" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Godot_icon.svg/512px-Godot_icon.svg.png">
</div>
</div>
【讨论】:
这是使用 css3 的自动旋转和旋转缩放效果
#obj1{
float:right;
width: 96px;
height: 100px;
-webkit-animation: mymove 20s infinite; /* Chrome, Safari, Opera */
animation: mymove 20s infinite;
animation-delay:2s;
background-image:url("obj1.png");
transform: scale(1.5);
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5); /* IE 9 */
margin-bottom: 70px;
}
#obj2{
float:right;
width: 96px;
height: 100px;
-webkit-animation: mymove 20s infinite; /* Chrome, Safari, Opera */
animation: mymove 20s infinite;
animation-delay:2s;
background-image:url("obj2.png");
transform: scale(1.5);
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5); /* IE 9 */
margin-bottom: 70px;
}
#obj6{
float:right;
width: 96px;
height: 100px;
-webkit-animation: mymove 20s infinite; /* Chrome, Safari, Opera */
animation: mymove 20s infinite;
animation-delay:2s;
background-image:url("obj6.png");
transform: scale(1.5);
-moz-transform: scale(1.5);
-webkit-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5); /* IE 9 */
margin-bottom: 70px;
}
/* Standard syntax */
@keyframes mymove {
50% {transform: rotate(30deg);
}
<div style="width:100px; float:right; ">
<div id="obj2"></div><br /><br /><br />
<div id="obj6"></div><br /><br /><br />
<div id="obj1"></div><br /><br /><br />
</div>
【讨论】: