如何解决如何通过剪辑路径过渡保持悬停效果?
它是两个 div
堆叠在一起,然后在悬停时应用 clip-path
来隐藏顶部 div,显示底部的那个。 CSS是这样的
.wipe_point {
clip-path: polygon(-1% 0%,101% 0%,101% 100%,50% 200%,-1% 100%);
transition: 0.5s ease;
}
.wipe_point:hover {
clip-path: polygon(-1% -170%,101% -170%,101% -70%,50% 30%,-1% -70% );
}
我的问题是在剪切区域未检测到 :hover
。这意味着如果鼠标并不总是在“未剪裁”区域内,动画看起来像这样:
问题:如何在剪切区域中仍然检测到悬停? 谢谢!!
解决方法
我会使用如下的一个元素来做不同的事情:
.box {
font-size:20px;
font-weight:bold;
font-family:sans-serif;
padding:15px 30px;
display:inline-block;
color:transparent;
background:
conic-gradient(from -60deg,black 120deg,#fff 0) top/100% 400%,conic-gradient(from -60deg,#0000 120deg,blue 0) top/100% 400%;
-webkit-background-clip:text,padding-box;
background-clip:text,padding-box;
transition:1s;
}
.box:hover {
background-position:bottom;
}
<div class="box">Some Text</div>
以上在 Firefox 上不起作用,所以你可以像下面那样做
.box {
font-size:20px;
font-weight:bold;
font-family:sans-serif;
padding:15px 30px;
display:inline-block;
color:transparent;
background:conic-gradient(from -60deg,#fff 0) top/100% 400%;
-webkit-background-clip:text;
background-clip:text;
transition:1s;
position:relative;
}
.box::before {
content:"";
position:absolute;
z-index:-1;
inset:0;
background:conic-gradient(from -60deg,blue 0) top/100% 400%;
transition:1s;
}
.box:hover,.box:hover::before{
background-position:bottom;
}
<div class="box">Some Text</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。