div+css实现鼠标悬浮多个长方形变色渐变效果代码
代码语言:html
所属分类:悬停
代码描述:div+css实现鼠标悬浮多个长方形变色渐变效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
}
html, body, div {
display: grid;
}
html {
overflow: hidden;
height: 100%;
background: #000;
}
body {
overflow: hidden;
}
.grid {
grid-template-columns: repeat(var(--n), max-content);
margin: 0 auto;
}
.cell {
--abs-i: max(var(--ki) - var(--i), var(--i) - var(--ki));
--abs-j: max(var(--kj) - var(--j), var(--j) - var(--kj));
--rel-i: calc(1 - var(--abs-i)/var(--n));
--rel-j: calc(1 - var(--abs-j)/var(--n));
--sum: calc(var(--rel-i)*var(--rel-i) + var(--rel-j)*var(--rel-j));
--sqr: var(--sum);
--bdw: calc(17.5vmin/var(--n));
box-sizing: border-box;
z-index: calc(var(--abs-i) + var(--abs-j));
border: solid var(--bdw) transparent;
width: calc(100vmin/var(--n));
border-radius: calc(var(--bdw) + 5px);
transform: scale(calc(1 + var(--sqr)*.25));
--hue: calc(180 + (1 - .5*var(--sqr))*150);
background: hsl(var(--hue, 150), 100%, 65%) content-box;
filter: drop-shadow(0 0 5px teal);
transition: 0.3s;
}
@supports (z-index: sqrt(4)) {
.cell {
--sqr: sqrt(var(--sum)) ;
}
}
</style>
</head>
<body >
<style>
.cell:nth-child(8n + 1) { --i: 0 }
.cell:nth-child(n + 1) { --j: 0 }
.grid:has(.cell:nth-child(8n + 1):hover) { --ki: 0 }
.grid:has(.cell:nth-child(n + 1):hover) { --kj: 0 }
.cell:nth-child(8n + 2) { --i: 1 }
.cell:nth-child(n + 9) { --j: 1 }
.grid:has(.cell:nth-child(8n + 2):hover) { --ki: 1 }
.grid:has(.cell:nth-child(n + 9):hover) { --kj: 1 }
.cell:nth-child(8n + 3) { --i: 2 }
.cell:nth-child(n + 17) { --j: 2 }
.grid:has(.cell:nth-child(8n + 3):hover) { --ki: 2 }
.grid:has(.cell:nth-child(n + 17):hover) { --kj: 2 }
.cell:nth-child(8n + 4) { --i: 3 }
.cell:nth-child(n + 25) { --j: 3 }
.grid:has(.cell:nth-child(8n + 4):hover) { --ki: 3 }
.grid:has(.cell:nth-child(n + 25):h.........完整代码请登录后点击上方下载按钮下载查看
网友评论0