Javascript 折叠菜单不适用于锚定链接

Javascript 折叠菜单不适用于锚定链接,javascript,jquery,html,menu,collapse,Javascript,Jquery,Html,Menu,Collapse,我构建了一个菜单,当你从顶部向下滚动超过250px时,它会崩溃,当你回到顶部时,它会恢复到原来的状态。但是我的网站有一些链接到主页中间的主播链接。当我直接转到这些链接时,菜单不起作用。我必须先滚动。他们是解决这个问题的方法吗 这是我使用的代码: <script> jQuery(function () { jQuery('.fixed').data('size', 'big'); }); jQuery(window).scroll(functi

我构建了一个菜单,当你从顶部向下滚动超过250px时,它会崩溃,当你回到顶部时,它会恢复到原来的状态。但是我的网站有一些链接到主页中间的主播链接。当我直接转到这些链接时,菜单不起作用。我必须先滚动。他们是解决这个问题的方法吗

这是我使用的代码:

<script>
    jQuery(function () {
        jQuery('.fixed').data('size', 'big');
    });

    jQuery(window).scroll(function () {
        if (jQuery(window).scrollTop() > 250) {
            if (jQuery('.fixed').data('size') == 'big') {
                jQuery('.fixed').data('size', 'small');
                jQuery('.fixed').stop().animate({
                    top: '-125px'
                }, 600);
                jQuery('.navbar-nav').stop().animate({
                    top: '15px'
                }, 600);
                jQuery('.dmbs-header-img').stop().animate({
                    opacity: '0'
                }, 200);
                jQuery('.logo-simple').stop().delay(200).animate({
                    top: '120px'
                }, 600);

            }
        } else {
            if (jQuery('.fixed').data('size') == 'small') {
                jQuery('.fixed').data('size', 'big');
                jQuery('.fixed').stop().animate({
                    top: '0px'
                }, 200);
                jQuery('.navbar-nav').stop().animate({
                    top: '0px'
                }, 200);
                jQuery('.dmbs-header-img').stop().animate({
                    opacity: '1'
                }, 100);
                jQuery('.logo-simple').stop().animate({
                    top: '-50px'
                }, 200);
            }
        }
    });
</script>

jQuery(函数(){
jQuery('.fixed').data('size','big');
});
jQuery(窗口).滚动(函数(){
if(jQuery(window).scrollTop()>250){
if(jQuery('.fixed').data('size')=='big'){
jQuery('.fixed').data('size','small');
jQuery('.fixed').stop().animate({
顶部:'-125px'
}, 600);
jQuery('.navbar nav').stop().animate({
顶部:“15px”
}, 600);
jQuery('.dmbs头img').stop().animate({
不透明度:“0”
}, 200);
jQuery('.logo simple').stop().delay(200).animate({
顶部:'120px'
}, 600);
}
}否则{
if(jQuery('.fixed').data('size')=='small'){
jQuery('.fixed').data('size','big');
jQuery('.fixed').stop().animate({
顶部:“0px”
}, 200);
jQuery('.navbar nav').stop().animate({
顶部:“0px”
}, 200);
jQuery('.dmbs头img').stop().animate({
不透明度:“1”
}, 100);
jQuery('.logo simple').stop().animate({
顶部:'-50px'
}, 200);
}
}
});

只需在锚定单击时触发滚动事件(或在您需要的任何其他事件上)

将您的代码移动到函数中,然后在scroll上调用它,或在anchor上单击:

function checkScroll(){
    if(jQuery(window).scrollTop() > 250)
    {
        // Your code
    }
    else
    {
        // Your code
    }
}

jQuery(window).scroll(function(){ 
    checkScroll();
});

jQuery('a').click(function(){
    checkScroll();
});

第二种解决方案可能会给您带来更大的灵活性。

您能添加一个jsfiddle来帮助我们更容易地找到解决方案吗?
jQuery(window)。scroll(checkScroll)可以。@RejithRKrishnan你说得对,我只是想反映他为了可读性而使用的语法
function checkScroll(){
    if(jQuery(window).scrollTop() > 250)
    {
        // Your code
    }
    else
    {
        // Your code
    }
}

jQuery(window).scroll(function(){ 
    checkScroll();
});

jQuery('a').click(function(){
    checkScroll();
});