div+css实现鼠标悬浮多个长方形变色渐变效果代码

代码语言:html

所属分类:悬停

代码描述:div+css实现鼠标悬浮多个长方形变色渐变效果代码

代码标签: 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):hover) { --kj: 3 }
   
  .cell:nth-child(8n + 5) { --i: 4 }
  .cell:nth-child(n + 33) { --j: 4 }
  .grid:has(.cell:nth-child(8n + 5):hover) { --ki: 4 }
  .grid:has(.cell:nth-child(n + 33):hover) { --kj: 4 }
   
  .cell:nth-child(8n + 6) { --i: 5 }
  .cell:nth-child(n + 41) { --j: 5 }
  .grid:has(.cell:nth-child(8n + 6):hover) { --ki: 5 }
  .grid:has(.cell:nth-child(n + 41):hover) { --kj: 5 }
   
  .cell:nth-child(8n + 7) { --i: 6 }
  .cell:nth-child(n + 49) { --j: 6 }
  .grid:has(.cell:nth-child(8n + 7):hover) { --ki: 6 }
  .grid:has(.cell:nth-child(n + 49):hover) { --kj: 6 }
   
  .cell:nth-child(8n + 8) { --i: 7 }
  .cell:nth-child(n + 57) { --j: 7 }
  .grid:has(.cell:nth-child(8n + 8):hover) { --ki: 7 }
  .grid:has(.cell:nth-child(n + 57):hover) { --kj: 7 }
</style>
<div class="grid" style="--n: 8">
  <div class="cell"></div>
  <div class="cell"></div>
  <div class="cell"></div>
  <div class=.........完整代码请登录后点击上方下载按钮下载查看

网友评论0