ここでは画像をマウスオーバーしたときのスタイルシート効果サンプルを思いつく限り紹介していきます。
コンテンツ
マウスオーバーで画像を拡大する
ボタンで表示を切り替えてご覧ください。
See the Pen css_mouseover_img01 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; cursor: pointer; } .img_wrap img{ width: 100%; transition-duration: 0.5s; } .img_wrap:hover img{ transform: scale(1.2); transition-duration: 0.5s; }
ポイントは、画像が拡大したときに要素の外にはみ出さないようoverflow:hidden;
を指定ところです。
マウスオーバーで画像を明るくする
See the Pen css_mouseover_img02 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.3s; } .img_wrap:hover img{ opacity: 0.6; transition-duration: 0.3s; }
見た目は、画像が明るくなったように見えますが、実際には画像を透明にして背景を透かせているだけです。そのため、背景が白くないときはこうはなりません。
マウスオーバーで画像を暗くする
See the Pen css_mouseover_img03 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; background: #000; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.3s; } .img_wrap:hover img{ opacity: 0.6; transition-duration: 0.3s; }
先ほどの画像を明るくするものに背景色background: #000;
を入れただけです。
マウスオーバーで画像を少し傾けながら拡大する
See the Pen css_mouseover_img04 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.5s; } .img_wrap img:hover{ transform: scale(1.2) rotate(9deg); transition-duration: 0.5s; }
transform: scale(1.2) rotate(9deg);
の部分で拡大と角度の指定をしています。
マウスオーバーで要素を浮かせる
See the Pen css_mouseover_img05 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 20px auto 0; transition-duration: 0.5s; } .img_wrap img{ width: 100%; cursor: pointer; } .img_wrap:hover{ box-shadow: 10px 10px 10px rgba(0,0,0,0.5); transform: translateY(-10px); transition-duration: 0.5s; }
box-shadow: 10px 10px 10px rgba(0,0,0,0.5);
で影を付けて、同時にtransform: translateY(-10px);
で要素を上に移動させています。
マウスオーバーで画像のぼかしを消す
See the Pen css_mouseover_img06 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; transform: scale(1.1); cursor: pointer; filter: blur(5px); transition-duration: 0.5s; } .img_wrap img:hover{ filter: blur(0); transition-duration: 0.5s; }
filter: blur(5px);
がぼかしの設定です。
マウスオーバーでモノクロからカラーに
See the Pen css_mouseover_img07 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
CSS
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; transform: scale(1.1); cursor: pointer; filter: grayscale(100%); transition-duration: 0.5s; } .img_wrap img:hover{ filter: grayscale(0); transition-duration: 0.5s; }
filter: grayscale(100%);
を指定すると画像がモノクロになります。
マウスオーバーで丸い画像を正方形に
See the Pen css_mouseover_img08 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img04.png"> </div>
body{ background: #daeffd; } .img_wrap{ width: 250px; height: 250px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; cursor: pointer; border-radius: 50%; transition-duration: 0.3s; } .img_wrap img:hover{ border-radius: 0; transition-duration: 0.3s; }
正方形の要素にborder-radius: 50%;
を指定すると丸くできます。
マウスオーバーで画像が回転する
See the Pen css_mouseover_img11 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img04.png"> </div>
body{ background: #daeffd; } .img_wrap{ width: 250px; height: 250px; margin: 0 auto; overflow: hidden; border-radius: 50%; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.5s; } .img_wrap img:hover{ transform: rotate(360deg); transition-duration: 0.5s; }
transform: rotate(360deg);
で画像を回転させています。
マウスオーバーでヨコに回転する
See the Pen css_mouseover_img09 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.5s; } .img_wrap:hover img{ transform: rotateY( 360deg ); transition-duration: 0.5s; }
transform: rotateY( 360deg );
でヨコに回転させています。
マウスオーバーでタテに回転する
See the Pen css_mouseover_img10 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img03.png"> </div>
.img_wrap{ width: 300px; height: 226px; margin: 0 auto; overflow: hidden; } .img_wrap img{ width: 100%; cursor: pointer; transition-duration: 0.5s; } .img_wrap:hover img{ transform: rotateX( 360deg ); transition-duration: 0.5s; }
transform: rotateX( 360deg );
でタテに回転させています。
マウスオーバーで画像が動き出す
See the Pen css_mouseover_img06 by kenichi (@ken81) on CodePen.
<div class="img_wrap"> <img src="https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img01.png"> </div>
.img_wrap{ border: 1px solid #ddd; width: 300px; height: 169px; margin: 0 auto; overflow: hidden; cursor: pointer; } .img_wrap img{ width: 100%; } .img_wrap:hover{ background: url(https://cotodama.co/wp-content/uploads/2018/09/css_mouseover_img02.gif) 0 0 / 100% no-repeat; } .img_wrap:hover img{ display: none; }
マウスオーバー時に、画像をdisplay: none;
で非表示にして、代わりにbackground
で背景画像としてgif動画を表示させています。この方法だと2回目以降にマウスオーバーしたときに動画が途中から再生されてしまう場合があります。どんなタイミングでマウスオーバーしてもgif動画が最初から再生されるようにするには、jQueryを使った方が良いでしょう。
以上がマウスオーバーで画像に効果を入れる方法でした。