日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > CSS >内容正文

CSS

[译] CSS 变量实现炫酷鼠标悬浮效果

發(fā)布時(shí)間:2025/4/5 CSS 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [译] CSS 变量实现炫酷鼠标悬浮效果 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文: Stunning hover effects with CSS variables

我的博客:[譯] CSS 變量實(shí)現(xiàn)炫酷鼠標(biāo)懸浮效果

我最近從Grover網(wǎng)站上的有趣的懸停動(dòng)畫(huà)中獲得靈感。將鼠標(biāo)移動(dòng)到訂閱按鈕上可以顯示光標(biāo)移動(dòng)后的彩色漸變。這個(gè)想法很簡(jiǎn)單,但結(jié)果是一個(gè)按鈕從復(fù)位和等待點(diǎn)擊中脫穎而出。

那怎樣實(shí)現(xiàn)類(lèi)似的效果使我們的網(wǎng)站同樣出色呢?很好,它并沒(méi)有你想象的那么困難!

跟蹤位置

我們需要做的第一件事便是跟蹤鼠標(biāo)光標(biāo)的位置。

document.querySelector('.button').onmousemove = (e) => {const x = e.pageX - e.target.offsetLeftconst y = e.pageY - e.target.offsetTope.target.style.setProperty('--x', `${ x }px`)e.target.style.setProperty('--y', `${ y }px`) } 復(fù)制代碼
  • 選中目標(biāo)元素并監(jiān)聽(tīng)用戶鼠標(biāo)劃過(guò)的事件
  • 計(jì)算鼠標(biāo)相對(duì)于該元素的坐標(biāo)
  • 將坐標(biāo)保存到 CSS 的變量中
  • 是的,只需要 6 行代碼就可以讓你的 CSS 知道用戶鼠標(biāo)的位置。通過(guò)這些信息你可以實(shí)現(xiàn)更多更龐大的效果。但是讓我們先實(shí)現(xiàn) CSS 部分……

    為漸變?cè)O(shè)置動(dòng)畫(huà)效果

    我們已經(jīng)將鼠標(biāo)坐標(biāo)存儲(chǔ)在 CSS 變量中,所以可以在 CSS 中的任何地方使用它們。(以下為 SCSS 代碼)

    .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;} } 復(fù)制代碼
  • 將文本包裹在一個(gè) span 中,防止?jié)u變層覆蓋到文字上方
  • 初始 width 和 height 為 0px 并且當(dāng)鼠標(biāo)懸浮在按鈕上時(shí)將它們?cè)黾拥?400px 。不要忘記設(shè)置 transition 讓它有個(gè)漸入的效果
  • 使用 JS 中設(shè)置坐標(biāo)跟隨鼠標(biāo)
  • 應(yīng)用一個(gè) radial-gradient 到 background 上并使用 closest-side circle 。 closest-side 使得 background 充滿整個(gè) before 但又沒(méi)有超出它。
  • 效果

    就這樣,添加缺少的 HTML 就可以了:

    <button class="button"><span>Hover me I'm awesome</span> </button> 復(fù)制代碼

    在線預(yù)覽

    See the Pen Mouse movement button with border-radius by Tobias Reich (@electerious) on CodePen.

    拓展

    只需對(duì)鼠標(biāo)的位置作出反應(yīng),即可建立如此多的效果。它非常華麗并且使得?互動(dòng)如此有趣。

    以下是我在basicScroll的網(wǎng)站上使用的類(lèi)似動(dòng)畫(huà):

    May the hover be with you https://t.co/2jrmVorLRW

    —@electerious

    或者看中并建立一個(gè) 3D 視差按鈕:

    3D parallax button with JS controlled CSS variables @CodePen ? https://t.co/qE0woiNip8 https://t.co/Wyi0xjRzPq

    —@electerious

    可能性是無(wú)止境的。你可以在下方評(píng)論區(qū)分享你使用它創(chuàng)建的效果?。

    Q&A

    Q: 為什么使用 width 和 height 而不是使用 transform: scale() 實(shí)現(xiàn)動(dòng)畫(huà)呢?

    A: 對(duì)于動(dòng)畫(huà)的性能, width 和 height 是不好的,你可能會(huì)盡量地嘗試使用 transform 。你為什么我不這樣做呢?問(wèn)題在于瀏覽器在加速圖層中呈現(xiàn)元素(正在轉(zhuǎn)換)。當(dāng)按鈕具有非矩形邊緣時(shí),此圖層可能會(huì)導(dǎo)致問(wèn)題。

    Q: 為什么改變 top 和 left 而不是 transform: translate() 呢?

    A: 參照上條。

    Q: 我可以在 Twitter 關(guān)注你嗎?

    A: 當(dāng)然。(原作者推特 @electerious)

    轉(zhuǎn)載于:https://juejin.im/post/5a924fcaf265da4e7d6061a6

    總結(jié)

    以上是生活随笔為你收集整理的[译] CSS 变量实现炫酷鼠标悬浮效果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 天堂在线网 | 91看大片| 亚洲av日韩av在线观看 | 18pao国产成视频永久免费 | 亚洲午夜激情视频 | 欧美bbbbbbbbbbbb精品 | 日日综合网 | 国产日韩欧美二区 | 天天做天天爱夜夜爽 | 91资源在线播放 | 欧美国产日韩在线观看 | 一区二区三区国产在线 | 蜜桃av噜噜一区二区三区 | 在线观看av免费 | 免费精品视频在线观看 | 午夜宅男在线 | 国产91一区二区三区 | 18禁免费无码无遮挡不卡网站 | 人妻少妇被猛烈进入中文字幕 | 久久99一区二区 | 中文字幕乱码一区二区 | 激情xxx | 亚洲人成人 | 91日日夜夜 | 日韩sese| 黄色亚洲视频 | 日本aⅴ视频 | 日韩av不卡在线播放 | 国产又粗又猛又爽又黄视频 | 草莓视频在线观看18 | 在线香蕉视频 | 国产免费观看一区 | 麻豆视屏 | 粗大黑人巨茎大战欧美成人 | 狠狠躁18三区二区一区视频 | 色综合图区 | av福利片 | 综合久久久久综合 | 日韩人体视频 | 久久久久久久久97 | 精产国品一二三产区m553麻豆 | 国产福利不卡 | 高清欧美性猛交 | 阿v天堂2017 欧美小视频在线观看 | 国产精品视频免费看 | 亚洲色图欧美色 | 日韩精品在线一区二区三区 | jizz欧美性20 | 蜜臀人妻四季av一区二区不卡 | 91一区二区在线观看 | 国产黄在线观看 | 欧美私人情侣网站 | 男生和女生一起差差差视频 | 三年中文在线观看免费观看 | 97精品人妻一区二区三区蜜桃 | 日本熟妇成熟毛茸茸 | av福利在线| 亚洲精品久久久乳夜夜欧美 | 亚洲综合色av | 国产精品视频在 | 日韩精品中文字幕在线播放 | 善良的公与媳hd中文字 | 精品国产无码在线观看 | 成人午夜免费福利视频 | 亚欧美色图 | 潘甜甜在线 | 国产成人av片 | 欧美第一页在线 | 免费的黄色小视频 | 日本污视频在线观看 | 亚洲aⅴ网站| wwwww国产| 日韩av一卡二卡 | 九九99精品视频 | 91麻豆成人精品国产免费网站 | 在线观看国产视频 | 午夜在线免费视频 | 五月天av网站 | 日韩精品在线观看一区二区 | 99reav| 在线麻豆视频 | 成人看片免费 | 成人免费福利 | 国产精品久久久久久一区 | 日韩人妻精品中文字幕 | 国产日本欧美在线观看 | 日本在线观看a | 狠狠热免费视频 | 欧美三级自拍 | 手机在线看片 | 国产精品19乱码一区二区三区 | 成人综合在线观看 | 中文字幕一区二区三 | 夜夜骚视频| 欧美丰满老熟妇aaaa片 | 亚洲爆爽av | 爱爱高潮视频 | 亚洲无遮挡 | 两性午夜免费视频 |