9つの画像のマウスオーバーでキャプションを表示させるアイディア
PR
Some hover effect ideas
カードタイプの画像にマウスオーバーをした時に表示するアニメーションのアイディア集です
9つのパターンがあり、どれも実用性のあるものとなっています
個人的には4番目、6番目が好み
– CODE –
HTML
<div class="wrapper"> <h1>More hover card ideas</h1> <div class="cell style-a"> <img src="http://lorempixel.com/185/275/abstract/1" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-b"> <img src="http://lorempixel.com/185/275/abstract/2" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-c"> <img src="http://lorempixel.com/185/275/abstract/3" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-d"> <img src="http://lorempixel.com/185/275/abstract/4" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-e"> <img src="http://lorempixel.com/185/275/abstract/5" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-f"> <img src="http://lorempixel.com/185/275/abstract/6" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-g"> <img src="http://lorempixel.com/185/275/abstract/7" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-h"> <img src="http://lorempixel.com/185/275/abstract/8" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> <div class="cell style-i"> <img src="http://lorempixel.com/185/275/abstract/9" /> <div class="inside"> <div class="cover top"><h1>Title</h1></div> <div class="cover bottom"><p><a href="#">view</a></p></div> </div> </div> </div>
CSS (LESS)
@import url(http://fonts.googleapis.com/css?family=Carme); * { box-sizing: border-box } body { font-family: 'Carme', sans-serif; background: #1E2024; font-size: 16px; } @color : rgba(239, 74, 74, 1); .wrapper { margin: 10px auto; //width: 615px; h1 { text-transform: uppercase; text-align: center; color: #2980b9; } } img { transform: scale3d(1, 1, 1); position: relative; display: block; } .grid { margin: 10px auto; width: 615px; &:after { content: ''; display: block; clear: both; } } .cell { background: #262932; position: relative; overflow: hidden; float: left; margin: 10px; transform: scale(1); &:hover p { margin-top: -1px; } .inside { position: absolute; width: 300%; left: -100%; height: 100%; top: 0; } h1, p { position: absolute; width: 100%; left: 0; color: #ECECEC; text-align: center; padding: 10px; } h1 { border-bottom: 1px solid #ECECEC; } p { // margin-top: -1px; border-top: 1px solid #ECECEC; } a { color: #ECECEC; text-decoration: none; } .cover { position: absolute; height: 100%; width: 100%; padding: 0 33.33333333%; left: 0; background: @color; } .top { top: -50%; h1 { bottom: 0; } } .bottom { bottom: -50%; } } /* sliding doors */ .style-a { img, .cover { transition: all 1s ease; } .top { transform : translate(0, -50%); } .bottom { transform : translate(0, 50%); } &:hover { img { transform: scale(.9); } .cover { transform : translate(0, 0); } } } .style-b { img, .cover { transition: all 1s ease; } .top { transform : translate(0, -50%); } .bottom { transform : translate(0, 50%); } &:hover { img { transform: scale(.9); } .top { transform : translate(0, -75px); } .bottom { transform : translate(0, 75px); } } } .style-c { img, .cover { transition: all 1s ease; } .cover { opacity: 0; } .top { transform : translate(0, -50%); } .bottom { transform : translate(0, 50%); } &:hover { img { transform: scale(.9); } .cover { opacity: 1; transform : translate(0, 0); } } } /* slide-in doors */ .style-d { img, .cover { transition: transform 1s ease; } .top { transform : translate(-100%, 0%); } .bottom { transform : translate(100%, 0%); } &:hover { .cover { transform : translate(0%, 0%); } } } .style-e { img, .cover { transition: transform 1s ease; } .top { transform : translate(-100%, 75px); } .bottom { transform : translate(100%, 75px); } &:hover { .cover { transform : translate(0%, 0%); } } } .style-f { img, .cover { transition: transform 1s ease, opacity .5s ease; } .cover { opacity: 0; } .top { transform : translate(-25%, -75px); } .bottom { transform : translate(25%, 75px); } &:hover { .cover { opacity: 1; } .top { transform : translate(0%, -75px); } .bottom { transform : translate(0%, 75px); } } } /* rotate */ .style-g { img, .cover { transition: transform 1s ease, opacity .5s ease; } .cover { opacity: 0; } .top { transform : rotate(56deg) translate(50px, -60px); } .bottom { transform : rotate(56deg) translate(-50px, 60px); } &:hover { .cover { opacity: 1; transform : rotate(0deg); } } } .style-h { img, .cover { transition: transform 1s ease, opacity .5s ease; } .cover { opacity: 0; } .top { transform : rotate(56deg) translate(50px, -80%); } .bottom { transform : rotate(56deg) translate(-50px, 80%); } &:hover { .cover { opacity: 1; transform : rotate(0deg); } .top {} .bottom {} } } .style-i { img, .cover, .inside { transition: transform 1s ease, opacity .5s ease; } .inside { transition: all 1s ease 1s; transform : rotate(90deg); } .top { transform : translate(0, -75%); } .bottom { transform : translate(0, 75%); } &:hover { img { transform: scale(.8); } .inside { transform : rotate(0deg); } .cover { transform : translate(0, 0); } } }
PR
COMMENT