效果

实现

html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title></title>
<link rel="stylesheet" href="./index.css" />
</head>
<body>
<div class="box">
<div class="btn"></div>
<div class="light">
<div class="base main"></div>
<div class="base bg"></div>
</div>
</div>
</body>
</html>

css

body,
html {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.5);
overflow: hidden;
}

.box {
position: relative;
}

.box .btn {
position: absolute;
top: -250px;
left: -50px;
width: 100px;
height: 50px;
border-radius: 20px;
background-color: #fff;
cursor: pointer;
transition: all 0.5s;
}

.box .light .base {
width: 300px;
height: 300px;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: all 0.5s;
}

.box .btn:hover + .light > .main {
background-color: #fff;
}

.box .btn:hover + .light > .bg {
filter: blur(50px);
z-index: 20;
background: rgba(255, 255, 255, 0.8);
}