利用 CSS 變量實(shí)現(xiàn)令人震驚的懸浮效果

2018-5-16    周周

這個(gè)動(dòng)畫(huà)是將鼠標(biāo)移動(dòng)到訂閱按鈕上移動(dòng)光標(biāo)會(huì)顯示相應(yīng)的彩色漸變。這個(gè)想法很簡(jiǎn)單,但是它能使這個(gè)按鈕脫穎而出,人們一下子就注意到它了,增加了點(diǎn)擊的概率。

171422eli2zvv3zq2eq2mu.gif

那么如何使用CSS實(shí)現(xiàn)這個(gè)效果?

追蹤位置

我們要做的第一件事就是獲取到鼠標(biāo)的位置。

  document.querySelector('.button').onmousemove = (e) => {
  const x = e.pageX - e.target.offsetLeft
  const y = e.pageY - e.target.offsetTop

  e.target.style.setProperty('--x', `${ x }px`)
  e.target.style.setProperty('--y', `${ y }px`)
  }
   1.選擇元素,等待,直到用戶將鼠標(biāo)移過(guò)它;
   2.計(jì)算相對(duì)于元素的位置;
   3.將坐標(biāo)存在CSS的變量中。

動(dòng)畫(huà)漸變
  .button {
     position: relative;
     appearance: none;
     background: #f72359;
     padding: 1em 2em;
     border: none;
     color: white;
     font-size: 1.2em;
     cursor: pointer;
     outline: none;
     overflow: hidden;
     border-radius: 100px;
  span {
    position: relative;
  }
  &::before {
    --size: 0;  
    content: '';
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: var(--size);
    height: var(--size);
    background: radial-gradient(circle closest-side, #4405f7, transparent);
    transform: translate(-50%, -50%);
    transition: width .2s ease, height .2s ease;
    }
    &:hover::before {
    --size: 400px;
      }

   }

結(jié)果
成功啦!將其加入到對(duì)于的HTML頁(yè)面,你炫酷的按鈕就可以使用啦!

分享本文至:

日歷

鏈接

個(gè)人資料

存檔