画像のマウスホバーしたら少し拡大+テキストがアニメーション表示

Ads

Result


画像のマウスホバーエフェクトです

css

.article-link {/*画像包括のベース部分。background-clipでborder部分まで背景適応*/
  background-clip: padding-box;
  color: white;
  width: 425px;
  height: 255px;
  position: absolute;
  top: 50%;
  left: 50%;
  overflow: hidden;
  font: 600 16px/2em sans-serif;
  text-decoration: none;
  text-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.5);
  border-radius: .375em;
  transform: translateX(-50%) translateY(-50%);
}
.article-link img {/*画像。scaleで縮小しておく*/
  position: absolute;
  top: 50%;
  left: 50%;
   transform: translateX(-50%) translateY(-50%) scale(0.85);
  transition: all .3s ease;
}
.article-link:hover img, 
.article-link:focus img {
 transform: translateX(-50%) translateY(-50%);
}

.article-title,
.article-date {
  position: absolute;
  top: 50%;
  left: 50%;
  white-space: nowrap;
}

.article-title {
  display: block;
  font-size: 2em;
  transform: translateX(-50%) translateY(-50%);
  transition: all .3s ease;
}
.article-link:hover .article-title, 
.article-link:focus .article-title {/*hoverしたらテキスト移動*/
 transform: translateX(-50%) translateY(calc(-50% - .5em));
}

.article-date {/*非表示にしておく*/
  opacity: 0;
  font-size: 1.25em;
  transform: translateX(-50%) translateY(calc(-50% + 1.8em));
  transition: all .3s ease;
}
.article-link:hover .article-date, 
.article-link:focus .article-date {/*hoverで表示しつつ位置遷移*/
  opacity: 1;
  transform: translateX(-50%) translateY(calc(-50% + .8em));
  transition: all .25s ease .05s;
}

html

<a href="#" class="article-link">
  <img src="https://picsum.photos/600/400" alt="">
  <span class="article-title">Hover me!</span>
  <time class="article-date">( ・∀・ )Yeah!</time>
</a>

via

Zoomy Anchor Thing

タイトルとURLをコピーしました