网页制作 发布日期:2025/11/3 浏览次数:1
写在前面
不知道是谁先发现filter:blur和filter:contrast能发生如此奇妙的化学反应的,但这不重要,重要的是你如果学会了这种特效的使用方法,就可以为你的网页添加酷炫的效果! 那么请先看两个小小的demo
demo
怎么做?
仔细看,网页上的元素似乎都有了粘度,当元素靠的足够近时,会发生融合的效果,当元素远离时又会有一种黏住的效果,这又如何完成?
很简单你只需在子元素添加filter:blur(模糊),而在它的父级元素上增加contrast对比度即可
他们看起来就像这样(接下来以一个更简单的demo举例):
代码部分:
<div class="wrapper">
<div class="container">
<div class="box"></div>
</div>
</div>
.wrapper{
width: 100%;
height: 100vh;
position: absolute;
background-color: #333;
filter:contrast(50)
}
.container {
position: absolute;
top:50%;
left:50%;
width: 200px;
height: 100px;
background-color: #00eeff;
filter: blur(10px) ;
}
.box{
width:25px;
height:25px;
background-color: #00eeff;
border-radius: 50%;
position: absolute;
left:50%;
transition: 1s;
filter: blur(1px);
animation: move 1s linear infinite;
}
@keyframes move {
0%{
transform: translateY(0);
}
100%{
transform: translateY(-100px);
}
}
你永远可以把代码copy下来自己尝试!
原理:
在元素都有blur属性的情况下,上为父级无contrast(下文称1图),下为父级有contrast(下文称2图),当元素融合时,发现了吗1图也有融合的效果在里面!只是很不清晰,这都是blur(模糊)带来的,而contrast属性便能很好的对抗模糊,已达到2图的效果。
见下图