在附加课程后,有标题淡出

时间:2016-10-23 04:06:23

标签: jquery css header fade

我有一个小脚本,允许我的标题在滚动页面时追加并删除子类。

然而,过渡很难,我希望标题变体从一个变为另一个。

我无法弄清楚如何让它消失。它要么闪烁,要么闪烁然后消失。我想知道是否有人可以帮助我。

我的jquery代码如下(在它处于破坏状态)

function init() {
window.addEventListener('scroll', function(e){
    var distanceY = window.pageYOffset || document.documentElement.scrollTop,
        shrinkOn = 100,
        header = document.querySelector("#header");
    if (distanceY > shrinkOn) {
        $("header").addClass("smaller").fadeIn(400);
    } else {
        if ($("header").hasClass("smaller")) {
            $("header").fadeOut(400).removeClass("smaller").fadeIn(400);
     }
    }
});
}
window.onload = init();

我希望标题淡出,附加.smaller类,然后淡入。

反之亦然。

我希望我的问题有道理。

2 个答案:

答案 0 :(得分:0)

如果在完成淡入淡出功能时添加或删除,则:

 $("header").addClass("smaller").fadeIn(400);

变为:

 $("header").fadeIn(400, function(){
   $(this).addClass("smaller");
 });

或者你可以在css中使用附加类的动画变换

答案 1 :(得分:-1)

我能够弄明白,但这已经产生了一个新的问题,将在稍后发布。以下是我的解决方案:

$(document).ready(function() {
    /*
        navOffset - The distance in which to trigger the events
        scrollPos - The position Y that the page has been scrolled
    */

  var navOffset = 5 /*$("header").offset().top;*/

    $(window).scroll(function(){
    var scrollPos = $(window).scrollTop();
    $("header").stop(true);

        if (!$("header").hasClass("smaller") || scrollPos < navOffset) {
            if (scrollPos > navOffset) {
                $("header").fadeTo(400, 0, function() {
                    $("header").addClass("smaller");
                });
                $("header").fadeTo(400, 1); 
            } else {
                $("header").fadeTo(400, 0, function (){
                    $("header").removeClass("smaller");
                });
                $("header").fadeTo(400, 1);
            }
        }
    });
});