最近,我從 Grover網站上發現以一個好玩兒的懸停動畫,也有了些本身的靈感。這個動畫是將鼠標移動到訂閱按鈕上移動光標會顯示相應的彩色漸變。這個想法很簡單,可是它能使這個按鈕脫穎而出,人們一會兒就注意到它了,增長了點擊的機率。
怎樣才能達到這個效果,使咱們的網站脫穎而出呢?其實,它並不像你想象的那麼難!app
咱們要作的第一件事就是獲取到鼠標的位置。ide
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`) }
是的,僅僅9行代碼就讓你能獲知用戶放置鼠標的位置,經過這個信息你能達到意想不到的效果,可是咱們仍是先來完成CSS部分的代碼。動畫
咱們先將座標存儲在CSS變量中,以便可以隨時使用它們。網站
.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; } }
成功啦!將其加入到對於的HTML頁面,你炫酷的按鈕就能夠使用啦!spa