核心提示:酷炫径向渐变按钮实现的代码教程HTMLbutton class=buttonspanHover me Im awesome/span/buttonCSS.button {position: relat...
酷炫径向渐变按钮实现的代码教程
HTML
<button class="button"> <span>Hover me I'm awesome</span> </button>
.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; } .button::before { content: ' '; --size: 0; 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; } .button:hover::before { --size: 400px; }
JavaScript
获取元素并监听用户鼠标划过的事件
计算鼠标相对于该元素的坐标
将坐标保存到 CSS 的变量中
<script> //获取按钮, 跟踪鼠标光标的移动位置。 document.querySelector('.button').onmousemove = (e) => { const x = e.pageX - e.target.offsetLeft const y = e.pageY - e.target.offsetTop // 设置属性 声明变量 在 css中 通过 var(定义变量名) 来使用 e.target.style.setProperty('--x', x +'px') e.target.style.setProperty('--y', `${ y }px`) } </script>