效果图



CSS-элементы
@keyframes _fade-in_mkmxd_1 {
0% {
фильтр: размытие (20 пикселей);
непрозрачность: 0
}
к {
фильтр: нет;
непрозрачность: 1
}
}
@keyframes _drop-in_mkmxd_1 {
0% {
преобразование: var(--transform) TranslateY(-100px) TranslateZ(400px)
}
к {
преобразование: вар (--transform)
}
}
._examples_mkmxd_3 {
маржа-верх: 200 пикселей;
положение: относительное;
ширина: 1000 пикселей;
высота: 640 пикселей;
переход: трансформация .15s легкость выхода;
фильтр: drop-shadow(0 4px 18px rgba(0,0,0,1));
--grid-width: 140 пикселей;
осталось: 50%;
трансформировать: транслировать (-50%, 0 пикселей);
}
._examples_mkmxd_3 div {
положение: относительное;
переход: фильтр .25с, ослабление;
анимация: _fade-in_mkmxd_1 .35scuba-bezier(.215,.61,.355,1) var(--delay) назад;
}
._examples_mkmxd_3 div:hover {
фильтр: drop-shadow(0 4px 8px rgba(0,0,0,.4));
z-индекс: 3;
}
._examples_mkmxd_3 а {
позиция: абсолютная;
--transform: перспектива(75em) RotateX(0deg) RotateZ(-0deg) Translate(calc(var(--x) * 100%), Calc(var(--y) * 86.67%)) Scale(1.145);
трансформировать: вар (--трансформировать);
анимация: _drop-in_mkmxd_1 .35scuba-bezier(.215,.61,.355,1) var(--delay) назад;
переход: трансформация .25s легкость выхода;
/*clip-path: полигон(50% 100%,93.3% 75%,93.3% 25%,50% 0%,6.7% 25%,6.7% 75%);*/
/*clip-path: полигон(25% 93,3%,75% 93,3%,93,3% 50%,75% 6,7%,25% 6,7%,6,7% 50%);*/
клип-путь: многоугольник (25% 87%,75% 87%,98,3% 50%,75% 13%,25% 13%,1,7% 50%);
}
._examples_mkmxd_3 a:hover{
преобразование: var(--transform) TranslateZ(10px) Scale(1.1);
}
._examples_mkmxd_3 изображение {
соотношение сторон: 1;
объектное соответствие: обложка;
высота: 64 пикселей;
ширина: 64 пикселей;
трансформировать: транслировать (-50%, 40 пикселей);
осталось: 50%;
позиция: абсолютная;
/*фильтр: тень(2px 2px 0px #00BFFF);*/
}
изображение {
максимальная ширина: 100%;
высота: авто;
дисплей: блок;
}
*{
размер коробки: граница-коробка;
}
.меню-бокс{
дисплей: блок;
ширина: 200 пикселей;
высота: 200 пикселей;
/*background:rgba(84, 109, 231,.6);*/
фон: средне-фиолетовый;
положение: относительное;
}
.меню-текст{
цвет: #fff;
позиция: абсолютная !важная;
верх: 120 пикселей;
осталось: 50%;
начертание шрифта: жирный;
трансформировать: транслировать (-50%, 0 пикселей);
/*фильтр: тень(2px 2px 0px #00BFFF);*/
размер шрифта: 16 пикселей;
выравнивание текста: по центру;
}
.back-img{
ширина: 64 пикселей! важно;
позиция: абсолютная;
осталось: 50%;
трансформировать: транслировать (-50%, 20 пикселей);
/*фильтр: тень(2px 2px 0px #00BFFF);*/
}
а:hover+.menu-box .menu-text{
цвет: #00BFFF;
фильтр: тень (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': item.x, '--y': item.y}">
<span class="menu-box" :style="{'background':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>
</а>
</div>
</div>vue代码
новый Vue({
эль:'#приложение',
данные(){
возвращаться {
данные меню:[
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'A系统',img:'',дети:[
{
x:0,y:0, путь:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'B系统',img:'',дети:[
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'E系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'A系统',img:'',дети:[]
},
]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'C系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'D系统',img:'',дети:[]
},
]
},
{
x:0,y:0, путь:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'B系统',img:'../img/navigation/火车站.png',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'C系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'D系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'E系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'A系统',img:'',дети:[]
},
{
x:0,y:0, путь:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'B系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'C系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'D系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'E系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'A系统',img:'',дети:[]
},
{
x:0,y:0, путь:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'B系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'C系统',img:'',дети:[]
},
{
x:0,y:0,path:'https://observablehq.com/@d3/bar-chart/2?intent=fork',name:'D系统',img:'',дети:[]
},
],
темпданные:[],
цвета:[
'#1874CD', '#3CB371', '#FF7F50', '#CD1076', '#CD00CD',
'#1C86EE', '#00FF7F', '#FF8C00', '#EE1289', '#EE00EE',
'#1E90FF', '#00FF00', '#FFA500', '#FF1493', '#FF00FF',
]
}
},
смотреть:{
менюДанные(){
это.initCoor()
}
},
смонтирован(){
пусть _this = это
это.getUser()
// this.getMenuData()
this.tempData = this.menuData
это.initCoor()
this.timer = setInterval(function(){
_this.localDate = _this.dateFormat(new Date(),'гггг-ММ-дд чч:мм:сс')
},1000)
},
уничтожен () {
очиститьИнтервал (этот.таймер)
},
методы:{
менюВвод(пункт){
if(item.name==='上一层')
возвращаться
this.msgData = элемент
this.msgShow = правда
},
менюLeave (пункт) {
this.msgShow = ложь
},
showTime (пункт) {
if(item.name==='上一层')
вернуть '0'
вернуть Math.random()+'
},
MenuClick(пункт,parant){
пусть обр =[]
if(item.name==='上一层'){
this.changeMenu(item.children)
}иначе если(item.children.length>0){
arr.push({x:0,y:0,path:'',name:'上一层',imgPath:'../img/navigation/icon-返回上一级.png',children:parant} )
item.children.forEach(t=>{
arr.push(t)
})
this.changeMenu(обр.)
}еще{
window.location.href = item.path
}
},
изменитьМеню (данные) {
пусть _this = это
this.tempData = []
setTimeout(функция(){
_this.tempData = данные
_this.initCoor()
},10)
},
initCoor(){
this.tempData.forEach((t,index)=>{
t.color = this.colors[индекс]
t.showTime = this.showTime(t)
если(!t.дети){
т.дети = []
}
если (индекс<5){
ты=0
tx=индекс*0,86
если(индекс%2!==0){
ты += 0,5
// tx = (индекс-1)+0,8
}
}иначе если(индекс>4&&индекс<10){
ты=1
tx=(индекс-5)*0,86
если(индекс%2===0){
ты += 0,5
// tx = (индекс-1)+0,8
}
}иначе если(индекс>9&&индекс<15){
ты=2
tx=(индекс-10)*0,86
если(индекс%2!==0){
ты += 0,5
// tx = (индекс-1)+0,8
}
}
})
},
}
})html-файлы с принтом в формате html, которые помогут вам в этом.介绍到这了,更多相关html蜂窝菜单内容请搜索dow ncodes.com — это сайт, который может быть использован в качестве исходного кода, а также логотип Downcodes.com!