2015.2.9

CSSだけで出来る!気持ち良いマウスオーバーアクションまとめ

デザイナー インターン

赤崎 大樹


aaa
 

こんにちは!
 

デザイナーのひろきちです!
 

この間は「【jQuery】簡単に震える、回る、画像を作ってみる。」と、動きのあるjQueryの実装方法を紹介しましたが、今回はCSSだけで出来るマウスオーバーアクションを紹介したいと思います。
 

今回もDEMOに可愛いうさぎちゃんを使っちゃいますね。
 

それではどうぞ。

 

マウスオーバーで画像拡大

 
マウスオーバーでふわっと拡大します。
 

HTML

<!DOCTYPE html>
<html lang="ja">
<head>

<meta charset="utf-8">
<title>DEMO</title>
<link href="style.css" rel="stylesheet" media="all">
<link href="default.css" rel="stylesheet" media="all">
</head>
 
<body>

  <a href="#" class="usagi">
    <img src="img/usagi.png" >
  </a>

 
</body>
</html>

 

CSS

@charset "UTF-8";
body {
  margin: 0 0;
}

.usagi img {
    -webkit-transition:0.2s ease-in-out;
    -moz-transition:0.2s ease-in-out;
    -ms-transition:0.2s ease-in-out;
    -o-transition:0.2s ease-in-out;
    transition:0.2s ease-in-out;
}

.usagi img:hover {
    -webkit-transform:scale(1.2,1.2);
    -moz-transform:scale(1.2,1.2);
    -ms-transform:scale(1.2,1.2);
    -o-transform:scale(1.2,1.2);
    transform:scale(1.2,1.2);
}

 
短い記述でカンタンに実装できます!
 
DEMOはこちら

 

マウスオーバーで儚く消える

 
マウスオーバーですごく儚く消えちゃいます。
 

HTML

<!DOCTYPE html>
<html lang="ja">
<head>

<meta charset="utf-8">
<title>DEMO</title>
<link href="style.css" rel="stylesheet" media="all">
<link href="default.css" rel="stylesheet" media="all">
</head>
 
<body>
 
    <img src="img/usagi.png" class="fade">

</body>
</html>

 

CSS

@charset "UTF-8";
body {
  margin: 0 0;
}


.fade {  
    -webkit-transition: 1s ease-in-out;  
       -moz-transition: 1s ease-in-out;  
         -o-transition: 1s ease-in-out;  
            transition: 1s ease-in-out;  
}  
.fade:hover {  
    opacity: 0;  
    filter: alpha(opacity=60);  
} 

 
cssを変えてあげれば透明度、消えていく秒数も変更できます。
 
DEMOはこちら

 

マウスオーバーでくるっと回転

 
マウスオーバーでくるっと回転します。
奥行きを感じさせ、気持ち良いです。

 

HTML

<!DOCTYPE html>
<html lang="ja">
<head>

<meta charset="utf-8">
<title>DEMO</title>
<link href="style.css" rel="stylesheet" media="all">
<link href="default.css" rel="stylesheet" media="all">
</head>
 
<body>

  <a href="#" class="usagi">
    <span class="front"><img src="img/usagi.png" ></span>
    <span class="back"><img src="img/usagi02.png" ></span>
  </a>

 
</body>
</html>

 

CSS

@charset "UTF-8";
body {
  margin: 0 0;
}

.usagi {
    color: #fff;
    display: block;
    text-decoration: none;
    width: 200px;
    position: relative;
    perspective: 300px;
    -webkit-perspective: 300px;
}
 
.usagi span {
    text-align: center;
    display: block;
    width: 200px;
    padding: 30px 0;
    position:absolute;
    top: 0;
    margin-top: -30px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transition: 0.8s;
}
.usagi .back {
    transform:rotateY(180deg);
    -webkit-transform:rotateY(180deg);
}
 
.usagi:hover .front {
    transform:rotateY(180deg);
    -webkit-transform:rotateY(180deg);
}
 
.usagi:hover .back {
    transform:rotateY(360deg);
    -webkit-transform:rotateY(360deg);
}

 
これだけでおっけい!
 
DEMOはこちら

 

ブラウザ確認

これは全てはCSSだけで実装できますが、ここで問題となるのがIEなどのブラウザの壁。
 
ですが、対応ブラウザを書いてくれているサイトもあります。↓
http://fmbip.com/litmus/
 
こちらのサイトではCSSのセレクタごとの対応ブラウザも書いていてくれて便利です。

 

以上、CSSだけで出来る!気持ち良いマウスオーバーアクションまとめでした。
今後、CSSだけでできることが続々増えていってくれることを願いますが、
 
それとともに対応ブラウザの増加も強く願います。

 


この記事を書いた人

デザイナーインターン

赤崎 大樹