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