3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSSアニメーションでキラッと光るボタンの実装

Posted at

CSSアニメーションを使ってキラッと光るボタンを実装する際、ボタンの形が角丸だった場合に
safariだとアニメーション部分が四角く表示されてしまうということがあったのでその解決方法メモ。
以下、pugとstylusです。

button(type='button').btn ボタン
.btn
  width: 300px
  color: #fff
  background-color: #76bddd
  font-size: 18px
  font-weight: bold
  border-radius: 40px
  border: 2px solid transparent
  padding: 14px 20px
  position: relative
  overflow: hidden
  &:before 
    content: ''
    width: 30px
    height: 100%
    background-color: #fff
    animation: shine 3s ease-in-out infinite
    position: absolute
    top: -180px
    left: 0
    opacity: 0
    transform: rotate(45deg)

@keyframes shine 
  0% 
    transform: scale(0) rotate(45deg)
    opacity: 0
  
  80% 
    transform: scale(0) rotate(45deg)
    opacity: 0.5
  
  81% 
    transform: scale(4) rotate(45deg)
    opacity: 1
  
  100% 
    transform: scale(50) rotate(45deg)
    opacity: 0

chromeだとこんな感じ。
chrome.gif
ボタンの形に沿ってキラッと光ってくれてます。

safariだと、
safari.gif
ボタンの形に沿わず四角く光るフィルターが被さっただけのように見えてしまっています。

解決方法は、.btnに z-index を書いてあげるだけです!

.btn
  width: 300px
  〜
  z-index: 10

簡単!:thumbsup:

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?