【问题标题】:How to create 3D show and hide animations with velocity js如何使用velocity js创建3D显示和隐藏动画
【发布时间】:2016-01-05 13:48:57
【问题描述】:

场景

我想隐藏所有元素,然后从刚刚隐藏的集合中显示一个特定元素。这必须在 3D 中发生。

问题

隐藏后,只有最后一个元素有效,我没有收到任何错误。

当我使用“hide()”时,以下工作;

$(document).on('click', '.navigation_but', function(){
        var nav = $(this).attr('data-nav');
        $(".article_sd").hide();
            $('.'+nav+'').velocity("transition.flipXIn");
    });

但这不起作用,我不知道我做错了什么。

$(document).on('click', '.navigation_but', function(){
            var nav = $(this).attr('data-nav');
            $(".article_sd").velocity("transition.flipXOut");
                $('.'+nav+'').velocity("transition.flipXIn");
        });

标记如下。

HTML


<header>
<nav class="navigation_but" data-nav="article_sd_first">First</nav>
<nav class="navigation_but" data-nav="article_sd_second">Second</nav>
<nav class="navigation_but" data-nav="article_sd_third">Third</nav>
<nav class="navigation_but" data-nav="article_sd_fourth">Fourth</nav>
</header>
<section>
<article class="article_sd article_sd_first" style="background-color:rgba(0,85,0,1)"></article>
<article class="article_sd article_sd_second" style="background-color: rgba(255,255,153,1)"></article>
<article class="article_sd article_sd_third" style="background-color: rgba(153,102,204,1)"></article>
<article class="article_sd article_sd_fourth" style="background-color: rgba(51,51,102,1)"></article>
</section>

还有一些 CSS


<style>
    .article_sd { height:100px;}
    </style>

或者如果可能的话,把这个花哨的效果放在这个演示中;

https://codyhouse.co/demo/page-scroll-effects/opacity.html

$.Velocity
    .RegisterEffect("rotation", {
        defaultDuration: 1,
        calls: [ 
            [ { opacity: '0', rotateX: '90', translateY: '-100%'}, 1]
        ]
    });

$.Velocity
.RegisterEffect("rotation.scroll", {
    defaultDuration: 1,
    calls: [ 
        [ { opacity: '0', rotateX: '90', translateY: '0'}, 1]
    ]
});

【问题讨论】:

    标签: javascript jquery 3d show-hide velocity.js


    【解决方案1】:

    我认为问题出在这里

    $(document).on('click', '.navigation_but', function(){
            var nav = $(this).attr('data-nav');
            $(".article_sd").velocity("transition.flipXOut");
                $('.'+nav+'').velocity("transition.flipXIn");
        });
    

    当调用第二个速度函数时,变量nav 元素仍在动画中。我们不希望这样。

    我认为有两个至少两个选项可以尝试。

    1) 在开始新动画之前停止较早的动画。 $('.'+nav+'').velocity('stop').velocity("transition.flipXIn");

    2) 使用velocity/jquery 样式回调在第一个动画之后为第二个动画制作动画。

    $(".article_sd").velocity("transition.flipXOut", function () {
      $('.' + nav).velocity('transition.flipXIn');
    });
    

    如果这有帮助,请告诉我。

    【讨论】:

    • 有进展。第一个出现又消失。第二个做动画,但是两个动画之间有空白,如果背景是白色的,在第二个动画开始之前有一个白色的长空格。
    • 您是否想要为“导航”制作动画?您可以使用 :not() 选择器将其从第一个动画中排除。 api.jquery.com/not-selector like $('.article_sd:not(.' + nav + ')').velocity(...
    • 请看我的编辑。我添加了一个现场演示链接,即“不透明度效果”,这是我希望在此实现的效果之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多