我正在尝试创建一个简单的页外滑动导航,但我在一些代码上堆栈主要是CSS。
我正在尝试制作3D效果,而不是简单的幻灯片效果,隐藏和取消隐藏侧边栏上的菜单。
这是我当前的JSFIDDLE工作:http://jsfiddle.net/je9fa6zc/
我想要的是创建一个有效的3D幻灯片:http://jsfiddle.net/f9bdm1te/2/
所以我尝试从这个JSFIDDLE复制一些CSS但是我没有得到我想要的东西。 在3D幻灯片中复制一些代码后,请查看我更新的CSS。实际上是JSFIDDLE。
#site-wrapper {
position: relative;
overflow: hidden;
width: 100%;
height: 5000px; /* Temp: Simulates a tall page. */
-webkit-perspective: 1500px;
perspective: 1500px;
-webkit-perspective-origin: 0% 50%;
perspective-origin: 0% 50%;
}
#site-canvas {
width: 100%;
height: 100%;
position: relative;
-webkit-transform: translateX(0);
transform: translateX(0);
-webkit-transition: .3s ease all;
transition: .3s ease all;
padding: 5% 0; /* Temp: Just spacing. */
}
#site-menu {
width: 300px;
height: 100%;
position: absolute;
top: 0;
left: -300px;
background: #428bca;
padding: 15px;
-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-webkit-transform-origin: 100% 50%;
transform-origin: 100% 50%;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
#site-wrapper.show-nav #site-canvas {
-webkit-transform: translateX(300px);
transform: translateX(300px);
visibility: visible;
-webkit-transition: -webkit-transform 0.5s;
transition: transform 0.5s;
-webkit-transform: translate3d(-100%, 0, 0) rotateY(0deg);
transform: translate3d(-100%, 0, 0) rotateY(0deg);
}
你介意检查我哪里出错吗?
如果您还可以更新我的JSFIDDLE以便我可以将其可视化?
答案 0 :(得分:1)
我已经为你的JSFiddle添加了一些CSS。
/* transition the menu with perspective on "show-nav" */
#site-wrapper.show-nav #site-menu {
-webkit-transform-origin: 100% 50%;
transform-origin: 100% 50%;
-webkit-transform: perspective(600px) rotateY(0deg);
transform: perspective(600px) rotateY(0deg);
}
默认情况下,菜单向内旋转90度,当应用show-nav-class时,滑动div和菜单本身都会进行转换。这样,菜单可以透视旋转到原来的0度。
检查一下,看看它是不是你想要的。