纯css实现蜂窝效果

html 复制代码
  <!DOCTYPE html>
  <html lang="en">
  	<head>
  		<meta charset="UTF-8">
  		<meta name="viewport" content="width=device-width, initial-scale=1.0">
  		<title>蜂窝效果</title>
  		<style>
  			body {
  				margin: 0;
  				padding: 0;
  				display: flex;
  				justify-content: center;
  				align-items: center;
  				min-height: 100vh;
  				background-color: #f0f0f0;
  			}

  			.honeycomb {
  				display: flex;
  				flex-direction: column;
  				align-items: center;
  				width: 700px;
  				height: 400px;
  				overflow: hidden;
  				padding-left: 310px;
  				scroll-behavior: smooth
  			}

  			.hexagon::before {
  				content: '';
  				position: absolute;
  				top: 2px;
  				left: 2px;
  				width: calc(100% + -4px);
  				height: calc(100% + -4px);
  				background-color: white;
  				clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
  				z-index: -1;
  			}

  			.honeycomb:has(.hexagon:hover) .scroll-content {
  				animation-play-state: paused;
  			}

  			.scroll-content {
  				animation: 20s linear 0s infinite alternate moveing;
  			}

  			@keyframes moveing {
  				0% {
  					transform: translateX(0);
  				}

  				25% {
  					transform: translateX(-15%);
  				}

  				50% {
  					transform: translateX(-25%);
  				}

  				75% {
  					transform: translateX(-15%);
  				}

  				100% {
  					transform: translateX(0);
  				}
  			}

  			.row {
  				display: flex;
  				justify-content: center;
  				margin-bottom: -36px;
  			}

  			.hexagon {
  				width: 98px;
  				height: 84px;
  				background-color: #000;
  				clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
  				margin: 0 36px;
  				transition: all 0.3s ease;
  				position: relative;
  				overflow: hidden;
  			}

  			.hexagon:hover {
  				transform: scale(1.2);
  				z-index: 2;
  			}

  			.hexagon:hover+.hexagon {
  				transform: scale(0.9);
  			}
  		</style>
  	</head>
  	<body>
  		<div class="honeycomb" id="honeycomb">
  			<div class="scroll-content">
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  				<div class="row">
  					<div class="hexagon">
  						<div class="highlight"></div>
  					</div>
  				</div>
  			</div>
  		</div>
  	</body>
  </html>
相关推荐
angerdream2 分钟前
最新版vue3+TypeScript开发入门到实战教程之Vue3详解props
javascript·vue.js
小小亮019 分钟前
qiankun的面试题
前端
爱宇阳34 分钟前
Nuxt4 + Tailwind CSS v4 自定义响应式断点完整指南
前端·css·nuxt4
Jutick1 小时前
揭秘低延迟:WebSocket 实时行情如何拯救你的量化策略?——Python 生产级实现
前端
~欲买桂花同载酒~1 小时前
项目优化-vite打包优化
前端·javascript·vue.js
林夕sama1 小时前
多线程基础(五)
java·开发语言·前端
我叫蒙奇1 小时前
husky 和 lint-staged
前端
kyriewen1 小时前
JavaScript 继承的七种姿势:从“原型链”到“class”的进化史
前端·javascript·ecmascript 6
穷鱼子酱1 小时前
ElSelect二次封装组件-实现分页(下拉加载、缓存)、回显
前端
科科睡不着1 小时前
拆解iOS实况照片📷 - 附React web实现
前端