web-dev-qa-db-ja.com

ホバーで画像を回転または回転させる

ホバーしたときに回転または回転する画像を作成する方法を知りたいです。次のコードでCSSでその機能をエミュレートする方法を知りたいです。

img {
  border-radius: 50%;
}
<img src="http://i.imgur.com/3DWAbmN.jpg" />
49
user3597950

rotate()からホバーで画像を回転でCSS3トランジションを使用できます。

画像の回転:

img {
  border-radius: 50%;
  -webkit-transition: -webkit-transform .8s ease-in-out;
          transition:         transform .8s ease-in-out;
}
img:hover {
  -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
}
<img src="https://i.stack.imgur.com/BLkKe.jpg" width="100" height="100"/>

ここにフィドルがあります DEMO


詳細と参考文献:

  • MDN のCSS遷移に関するガイド
  • MDN のCSS変換に関するガイド
  • caniuse.com 上の2D変換のブラウザサポートテーブル
  • caniuse.com の遷移のブラウザサポートテーブル
122
web-tiki

とても簡単です。

  1. 画像を追加します。
  2. この画像にcssプロパティを作成します。

    img { transition: all 0.3s ease-in-out 0s; }
    
  3. そのようなアニメーションを追加します。

    img:hover
    {
        cursor: default;
        transform: rotate(360deg);
        transition: all 0.3s ease-in-out 0s;
    }
    
4
s0h3ck

インライン要素を回転させる場合は、まずインライン要素を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);
  }
}
2
Kyle

これは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>

これが デモ です

1
M. Lak