Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqueryif-else位于页面顶部_Jquery_Scrolltop - Fatal编程技术网

jqueryif-else位于页面顶部

jqueryif-else位于页面顶部,jquery,scrolltop,Jquery,Scrolltop,我似乎无法让它正常工作,只有一个动作是开火。还有其他的写作方法吗 $(window).on('scroll', function() { var scrollTop = $(this).scrollTop(); if ( scrollTop < 1 ) { $('#nav-logo').transition({ scale: 1.0, y: 0 }); } else { $('#nav-log

我似乎无法让它正常工作,只有一个动作是开火。还有其他的写作方法吗

$(window).on('scroll', function() {
        var scrollTop = $(this).scrollTop();

        if ( scrollTop < 1 ) {
            $('#nav-logo').transition({ scale: 1.0, y: 0 });
        } else {
            $('#nav-logo').transition({ scale: 0.5, y: -126 });
        }

    });
$(窗口).on('scroll',function(){
var scrollTop=$(this.scrollTop();
如果(滚动顶部<1){
$(#nav logo')。转换({scale:1.0,y:0});
}否则{
$(#nav logo')。过渡({比例:0.5,y:-126});
}
});

问题是您的动画彼此重叠。您可以通过以下方法来预防:


是否达到ELSE语句?我的意思是,您的问题是使用transition()还是ELSE语句?您所说的“只有一个操作正在触发”是什么意思?似乎只有ELSE语句正在触发。当我回到页面顶部时,它不会转换回原始大小,即if语句。我不知道这是什么
transition()
方法以及它是如何工作的。如果使用某种CSS转换(如我猜的),您应该重置此转换这里是一个演示原始问题的示例。通过单击并拖动滚动条滚动时,最容易注意到这一点。
var $nav = $('#nav-logo');
var $window = $(window);
var wasTop = true;
$window.on('scroll', function () {
    var isTop = !$window.scrollTop();
    if (isTop && !wasTop) {
        $nav.stop();
        $nav.transition({
            scale: 1.0,
            y: 0
        });
        wasTop = true;
    } else if (!isTop && wasTop) {
        $nav.stop();
        $nav.transition({
            scale: 0.5,
            y: -126
        });
        wasTop = false;
    }
});