【问题标题】:Page navigation using jQuery slideUp() animation使用 jQuery slideUp() 动画的页面导航
【发布时间】:2015-06-25 03:29:19
【问题描述】:

我正在尝试使用 jQuery 创建一个多页面导航,当我们更改页面时,当前页面会遭受 slideUp() 并消失。

到目前为止,我有这个 JS:

$(document).ready(function() {

    current = "#div1";

    $("#btn1").click(function() {

        if (current != "#div1") {
            $(current).slideUp("slow");

            current = "#div1";
        }

    });

    $("#btn2").click(function() {

        if (current != "#div2") {
            $(current).slideUp("slow");

            current = "#div2";
        }

    });

    $("#btn3").click(function() {

        if (current != "#div3") {
            $(current).slideUp("slow");

            current = "#div3";
        }

    });

});

在此运行:http://jsfiddle.net/93gk3oyg/

我似乎无法正确地从第 1 页导航到第 3 页、从第 3 页导航到第 2 页等等......

任何帮助将不胜感激:)

【问题讨论】:

  • 我正忙着为你准备一些东西,给我一分钟:)

标签: javascript jquery html css navigation


【解决方案1】:

我对您的代码进行了一些重构。我实际上并没有使用任何上滑功能,一切都是使用 CSS 动画处理的,这意味着您以后可以将它们更改为其他内容。另请注意,这意味着您实际上并不需要搞乱 z-index。 HTML:

<div id="menu">
    <button class="btn" id="btn1" data-rel-page="div1">Pag1</button>
    <button class="btn" id="btn2" data-rel-page="div2">Pag2</button>
    <button class="btn" id="btn3" data-rel-page="div3">Pag3</button>
    <button class="btn" id="btn4" data-rel-page="div4">Pag4</button>
</div>
<div id="div1" class="fullscreen active">
    <center>HOME</center>
</div>
<div id="div2" class="fullscreen">
    <center>PAGE2</center>
</div>
<div id="div3" class="fullscreen">
    <center>PAGE3</center>
</div>
<div id="div4" class="fullscreen">
    <center>PAGE4</center>
</div>

JS:

$(document).ready(function () {
    var current = "div1";
    $("[data-rel-page]").bind('click', function (evt) {

        var el = $(evt.currentTarget).attr('data-rel-page');
        if (el === current) return;


        var $el = $("#" + el);
        var $cur = $("#" + current);

        current = el;


        $cur.removeClass('active');
        $el.addClass('active');
    })
});

CSS:

.fullscreen {
    transition: all 0.4s linear;
    position: fixed;
    bottom: 0px;
    left: 0px;
    right: 0px;
    height: 0%;
    overflow: hidden;
}

.fullscreen.active {
    display: block;
    height: 100%;
}

这里是小提琴:http://jsfiddle.net/93gk3oyg/9/

【讨论】:

  • 完美运行,谢谢!您有时会注意到两个页面滚动(一个向上和一个向下),有什么办法可以解决这个问题,以便您在单击菜单时所在的页面停留在那里而另一个滚动进入?
  • 有很多方法可以实现,但是其中许多技术会有点不自然,您必须保持 z-index 值,这样动画就不会变成有点时髦。方法是像这样延迟“活动类”的删除:jsfiddle.net/93gk3oyg/13(使用 js)或jsfiddle.net/93gk3oyg/14(使用转换延迟)。我想您会发现,当您构建这些页面时,滑入和滑出可能看起来比滑过更好,但这完全是见仁见智。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多