gpt4 book ai didi

javascript - anchor 链接悬停的边框半径效果

转载 作者:行者123 更新时间:2023-11-28 19:28:47 27 4
gpt4 key购买 nike

我正在尝试创建一个按钮,该按钮在悬停时会根据鼠标悬停在按钮的哪个部分上来创建渐变。灵感改编自 here

但是,我无法为我的标记复制它的功能。我已经尝试将类包装在一个 div(而不是一个 button)周围,但仍然没有成功。

document.querySelector('.btn--hoverGradient').onmousemove = (e) => {

// const x = e.pageX - e.target.offsetLeft
// const y = e.pageY - e.target.offsetTop

var rect = e.target.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;

e.target.style.setProperty('--x', `${ x }px`)
e.target.style.setProperty('--y', `${ y }px`)

}
a{
text-decoration: none;
}
.btn--hoverGradient {
position: relative;
appearance: none;
border: none;
cursor: pointer;
outline: none;
overflow: hidden;
border-radius: 100px;
}
.btn--hoverGradient a {
position: relative;
pointer-events: none;
}
.btn--hoverGradient::before {
--size: 0;
content: "";
position: absolute;
left: var(--x);
top: var(--y);
width: var(--size);
height: var(--size);
transform: translate(-50%, -50%);
transition: width 0.2s ease, height 0.2s ease;
}
.btn--hoverGradient-darkGrey {
background: radial-gradient(circle closest-side, #FFF, transparent);
}
.btn--hoverGradient:hover::before {
--size: 400px;
}

.btn--core {
border: 0;
outline: 0;
display: inline-block;
white-space: nowrap;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
text-align: center;
user-select: none;
border-radius: 0.25rem;
padding: 11px 40px;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
font-size: 1.25em;
}
.btn--darkGrey {
font-family: "Raleway", sans-serif;
font-weight: 700;
color: #FFFFFF;
background-color: #293440;
}
<div class="btn--hoverGradient btn--hoverGradient-darkGrey">
<a href="#" class="btn--core btn--darkGrey">test</a>
</div>

我哪里错了?

最佳答案

在 CSS 中,

.btn--hoverGradient-darkGrey {
background: radial-gradient(circle closest-side, #FFF, transparent);
}

应该是,

.btn--hoverGradient-darkGrey:before {
background: radial-gradient(circle closest-side, #4405f7, transparent);
}

你把它变成了白色,这就是你看不到效果的原因,其次你错过了':before'

效果还是和链接里的不一样。

关于javascript - anchor 链接悬停的边框半径效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55532039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com