Нам потребуются:
– HTML– CSS– jQuery
HTML
Способ создать этот 3D эффект прост. У Вас есть отделение обертки с Перспективными свойствами CSS3, относился к нему. Тогда у детского отделения контейнера есть CSS3, Преобразовывает, который преобразует его в пропорцию к перспективе.
WebDesignCrowd Back to Article
Perspective Sidebar
Horizontal Vertical
CSS
Это - код для создания перспективного эффекта на контейнер. В загружаемом кодексе я предоставляю кодекс, чтобы сделать вертикальный эффект и горизонтальный эффект.
.wrapper {
height: 100%;
-moz-perspective: 500;
-webkit-perspective: 500;
perspective: 500;
-moz-perspective-origin: 50% 50%;
-webkit-perspective-origin: 50% 50%;
perspective-origin: 50% 50%;
overflow: hidden;
}
.container {
position: relative;
z-index: 1;
background-color: #ddd;
padding-top: 20px;
text-align: center;
height: 100%;
margin-left: 40px;
transition: .5s;
-webkit-transition: .5s;
-webkit-transform: rotateY(0deg) translateX(0) scale(1);
transform: rotateY(0deg) translateX(0) scale(1);
}
.container.perspective {
-webkit-transform: rotateY(-15deg) translateX(250px) scale(.9);
transform: rotateY(-15deg) translateX(250px) scale(.9);
}
Это — код для моделирования меню. У хитрой части есть меню на том же самом z-индексе, в то время как контейнер отодвигает раскрытие опций меню, которые все еще clickable. Я уверен, что есть лучшие способы сделать его и если есть, не стесняются сообщать мне в комментариях.
.menu {
height: 100%;
width: 40px;
background-color: #444;
position: absolute;
top: 0;
left: 0;
z-index: 0;
cursor: pointer;
}
.menu .hover-icon {
position: relative;
z-index: 10;
font-size: 20px;
width: 40px;
height: 100%;
text-align: center;
}
.menu .hover-icon i {
position: absolute;
width: 40px;
top: 50%;
left: 0;
margin-top: -20px;
}
.menu ul {
position: absolute;
z-index: 0;
left: 40px;
top: 15%;
width: 200px;
height: 75%;
margin-left: 10px;
}
.menu ul li {
font-size: 12px;
font-weight: bold;
transition: .2s;
-webkit-transition: .2s;
}
.menu ul li a { color: #ddd; }
.menu ul li:hover { margin-left: 10px; }
.menu ul li:hover a { color: #fff; }
body.vertical .menu ul li:hover {
margin-left: 0;
background-color: #404040;
}
jQuery
jQuery только добавляет перспективный класс к контейнеру.
$(".menu .hover-icon").click(function() {
if ($(".container").hasClass("perspective")) {
$(".container").removeClass("perspective");
}
else {
$(".container").addClass("perspective");
}
});