效果图
CSS样式
@keyframes _fade-in_mkmxd_1 { 0% { filtro: desenfoque (20px); opacidad: 0 } a { filtro: ninguno; opacidad: 1 } } @keyframes _drop-in_mkmxd_1 { 0% { transformar: var(--transform) traducirY(-100px) traducirZ(400px) } a { transformar: var(--transformar) } } ._examples_mkmxd_3 { margen superior: 200 px; posición: relativa; ancho: 1000 px; altura: 640 px; transición: transformar la salida gradual del .15; filtro: sombra paralela (0 4px 18px rgba(0,0,0,1)); --ancho de cuadrícula: 140px; izquierda: 50%; transformar: traducir (-50%, 0px); } ._examples_mkmxd_3 div { posición: relativa; transición: filtro de salida gradual de .25s; animación: _fade-in_mkmxd_1 .35s cubic-bezier(.215,.61,.355,1) var(--delay) hacia atrás; } ._examples_mkmxd_3 div: flotar { filtro: sombra paralela (0 4px 8px rgba(0,0,0,.4)); índice z: 3; } ._examples_mkmxd_3 a { posición: absoluta; --transformar: perspectiva(75em) rotarX(0deg) rotarZ(-0deg) traducir(calc(var(--x) * 100%), calc(var(--y) * 86.67%)) escala(1.145); transformar: var(--transformar); animación: _drop-in_mkmxd_1 .35s cubic-bezier(.215,.61,.355,1) var(--delay) hacia atrás; transición: transformar la salida gradual de .25; /*ruta-clip: polígono(50% 100%,93,3% 75%,93,3% 25%,50% 0%,6,7% 25%,6,7% 75%);*/ /*ruta-clip: polígono(25% 93,3%,75% 93,3%,93,3% 50%,75% 6,7%,25% 6,7%,6,7% 50%);*/ ruta de clip: polígono (25% 87%,75% 87%,98,3% 50%,75% 13%,25% 13%,1,7% 50%); } ._examples_mkmxd_3 a: flotar{ transformar: var(--transform) traducirZ(10px) escala(1.1); } ._examples_mkmxd_3 imagen { relación de aspecto: 1; ajuste de objeto: cubierta; altura: 64 píxeles; ancho: 64px; transformar: traducir (-50%, 40px); izquierda: 50%; posición: absoluta; /*filtro: sombra paralela(2px 2px 0px #00BFFF);*/ } imagen { ancho máximo: 100%; altura: automático; mostrar: bloquear; } *{ tamaño de caja: cuadro de borde; } .cuadro de menú { mostrar: bloquear; ancho: 200 px; altura: 200 px; /*antecedentes:rgba(84, 109, 231,.6);*/ fondo: violeta medio; posición: relativa; } .menú-texto{ color: #fff; posición: absoluta !importante; arriba: 120px; izquierda: 50%; peso de fuente: negrita; transformar: traducir (-50%, 0px); /*filtro: sombra paralela(2px 2px 0px #00BFFF);*/ tamaño de fuente: 16px; alineación de texto: centro; } .volver-img{ ancho: 64px! Importante; posición: absoluta; izquierda: 50%; transformar: traducir (-50%, 20px); /*filtro: sombra paralela(2px 2px 0px #00BFFF);*/ } a: hover+.menu-box .menu-text{ color: #00BFFF; filtro: sombra paralela (2px 2px 0px #fff); }
HTML
<div class="_examples_mkmxd_3" > <div v-for="(item,index) in tempData" :key="index" :style="{'--delay': item.showTime}"> <a href="#" :title="item.name" @mouseenter="menuEnter(item)" @mouseleave="menuLeave(item)" @click="menuClick(item,tempData)" :style="{' --x': elemento.x, '--y': elemento.y}"> <span class="menu-box" :style="{'fondo':item.color}"> <img v-if="item.name!=='上一层'" :src="item.imgPath?item.imgPath:'../img/navigation/火车站.png'" > <img v-if="item.imgPath&&item.name==='上一层'" :src="item.imgPath" class="back-img"> <span class="menu-text">{{item.name}}</span> </span> </a> </div> </div>
vista
nueva vista ({ el:'#aplicación', datos(){ devolver { menúDatos:[ { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'A系统',img:'',niños:[ { x:0,y:0, ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'B系统',img:'',niños:[ { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'E系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'A系统',img:'',niños:[] }, ] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'C系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'D系统',img:'',niños:[] }, ] }, { x:0,y:0, ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'B系统',img:'../img/navigation/火车站.png',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'C系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'D系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'E系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'A系统',img:'',niños:[] }, { x:0,y:0, ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'B系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'C系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'D系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'E系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'A系统',img:'',niños:[] }, { x:0,y:0, ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'B系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'C系统',img:'',niños:[] }, { x:0,y:0,ruta:'https://observablehq.com/@d3/bar-chart/2?intent=fork',nombre:'D系统',img:'',niños:[] }, ], datos temporales:[], bandera:[ '#1874CD', '#3CB371', '#FF7F50', '#CD1076', '#CD00CD', '#1C86EE', '#00FF7F', '#FF8C00', '#EE1289', '#EE00EE', '#1E90FF', '#00FF00', '#FFA500', '#FF1493', '#FF00FF', ] } }, mirar:{ menúDatos(){ this.initCoor() } }, montado(){ deja _esto = esto this.getUser() // this.getMenuData() this.tempData = this.menuData this.initCoor() this.timer = setInterval(función(){ _this.localDate = _this.dateFormat(nueva fecha(),'aaaa-MM-dd hh:mm:ss') },1000) }, destruido(){ clearInterval(este.temporizador) }, métodos:{ menúIntroducir(elemento){ if(item.nombre==='上一层') devolver this.msgData = elemento this.msgShow = verdadero }, menúDejar(elemento){ this.msgShow = falso }, mostrarHora(elemento){ if(item.nombre==='上一层') devolver '0' devolver Math.random()+'s' }, menúClic(elemento,parant){ dejar arr =[] if(item.name==='上一层'){ this.changeMenu(elemento.niños) }si no (elemento.niños.longitud>0){ arr.push({x:0,y:0,ruta:'',nombre:'上一层',imgPath:'../img/navigation/icon-返回上一级.png',niños:parant} ) elemento.niños.forEach(t=>{ arr.push(t) }) this.changeMenu(arr) }demás{ ventana.ubicación.href = elemento.ruta } }, cambiarMenú(datos){ deja _esto = esto this.tempData = [] setTimeout(función(){ _this.tempData = datos _this.initCoor() },10) }, initCoor(){ this.tempData.forEach((t,índice)=>{ t.color = this.colors[índice] t.showTime = this.showTime(t) si(!t.niños){ t.niños = [] } si(índice<5){ ty=0 tx=índice*0.86 si(índice%2!==0){ ty += 0,5 // tx = (índice-1)+0.8 } }si no(índice>4&&índice<10){ ty=1 tx=(índice-5)*0,86 si(índice%2===0){ ty += 0,5 // tx = (índice-1)+0.8 } }de lo contrario si(índice>9&&índice<15){ ty=2 tx=(índice-10)*0,86 si(índice%2!==0){ ty += 0,5 // tx = (índice-1)+0.8 } } }) }, } })
到此这篇关于html实现蜂窝菜单的示例代码的文章就介绍到这了,更多相关html蜂窝菜单内容请搜索dow ncodes.com以前的文章或继续浏览下面的相关文章,希望大家以后多多支持downcodes.com!