【问题标题】:Off-page Sliding Navigation离页滑动导航
【发布时间】:2014-10-14 02:06:52
【问题描述】:

我正在尝试创建一个简单的页外滑动导航,但是我在一些主要是 CSS 的代码上堆叠。

我正在尝试创建 3D 效果,而不是简单的幻灯片效果,它可以隐藏和取消隐藏侧边栏上的菜单。

这是我目前的 JSFIDDLE 工作:http://jsfiddle.net/je9fa6zc/

我想要创建一个效果如下的 3D 幻灯片:http://jsfiddle.net/f9bdm1te/2/

所以我尝试从这个 JSFIDDLE 复制一些 CSS,但是我没有得到我想要的。 在效果 JSFIDDLE 的 3D 幻灯片上复制一些代码后查看我更新的 CSS。

#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 以便我可以可视化它?

【问题讨论】:

  • 注意:如果没有添加新的 CSS,我的代码如下所示:jsfiddle.net/6unvc0ua/4
  • 我明白这只是 CSS 而不是 JavaScript 或 jQuery。我只想在动画中创建一个看起来像这样的 3D 幻灯片。 jsfiddle.net/f9bdm1te/2主要是CSS3。

标签: javascript jquery html css


【解决方案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 度。

检查一下,看看是不是你想要的。

【讨论】:

  • 完美!谢谢!正是我要找的!干杯! :)