Javascript 使用引导scrollspy平滑滚动

Javascript 使用引导scrollspy平滑滚动,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,这个问题以前已经发布过,但我认为我的问题已经不同,足以证明问题的合理性 首先是我的小提琴(注意它很大) 很抱歉,有些CSS与问题无关,请忽略它们 主要的问题是:我有一个平滑的滚动,我不想scrollspy突出显示每个菜单按钮,而页面滚动。所以我不得不在滚动效果发生时停用它,然后再重新激活它 但我制造了一个我还不能确定的问题。 若要体验该错误,请在加载页面时单击“菜单5”。然后,您将滚动到5,给它一个活动类,但是scrollspy将在返回页面顶部之前不起作用。正确的行为是:一旦您滚动到Menu5并

这个问题以前已经发布过,但我认为我的问题已经不同,足以证明问题的合理性

首先是我的小提琴(注意它很大) 很抱歉,有些CSS与问题无关,请忽略它们

主要的问题是:我有一个平滑的滚动,我不想scrollspy突出显示每个菜单按钮,而页面滚动。所以我不得不在滚动效果发生时停用它,然后再重新激活它

但我制造了一个我还不能确定的问题。 若要体验该错误,请在加载页面时单击“菜单5”。然后,您将滚动到5,给它一个活动类,但是scrollspy将在返回页面顶部之前不起作用。正确的行为是:一旦您滚动到Menu5并滚动到顶部,scrollspy应该可以工作

这是我的JS:

/*------------------------------------------------------------------
SCROLLING.JS
-------------------------------------------------------------------*/
// Scrolling animation - anchor buttons
$(document).ready(function() {
    $(".scrollTo").click(function() {
        var t = $(this).attr("href");
        $('.active').removeClass('active');
        $('#site-header').toggleClass('spy-active');
        $("html, body").animate({
            scrollTop: $(t).offset().top - 50
        }, {
            duration: 1e3

        });
        setTimeout(function() { $('#site-header').toggleClass('spy-active'); }, 1e3);
        $('body').scrollspy({ target: '.spy-active',offset: 75 });
        $(this).parent().addClass('active');
        return false;
    });

});



//navbar
var distance = $('#site-header').offset().top,
    $window = $(window);

$window.scroll(function() {
    if ( $window.scrollTop() >= distance ) {
        $('#site-header').addClass('fixed-nav')
    }
    if ( $window.scrollTop() <= distance ) {
        $('#site-header').removeClass('fixed-nav')
    }
});


$('body').scrollspy({ target: '.spy-active',offset: 75 });
/*------------------------------------------------------------------
SCROLLING.JS
-------------------------------------------------------------------*/
//滚动动画-定位按钮
$(文档).ready(函数(){
$(“.scrollTo”)。单击(函数(){
var t=$(this.attr(“href”);
$('.active').removeClass('active');
$(“#站点标题”).toggleClass('spy-active');
$(“html,body”).animate({
scrollTop:$(t).offset().top-50
}, {
持续时间:1e3
});
setTimeout(function(){$('#site header').toggleClass('spy-active');},1e3);
$('body').scrollspy({目标:'.spy活动',偏移量:75});
$(this.parent().addClass('active');
返回false;
});
});
//导航栏
变量距离=$(“#站点标题”).offset().top,
$window=$(window);
$window.scroll(函数(){
如果($window.scrollTop()>=距离){
$(“#站点标题”).addClass('fixed-nav')
}
如果($window.scrollTop()=距离){
$(“#站点标题”).addClass('fixed-nav')
}

如果($window.scrollTop()在完整视图中尝试以下代码

出现错误的地方是将容器类添加到导航栏

它可以在导航之外

/*------------------------------------------------------------------
SCROLLING.JS
-------------------------------------------------------------------*/
//滚动动画-定位按钮
$(文档).ready(函数(){
$(“.scrollTo”)。单击(函数(){
var t=$(this.attr(“href”);
$('.active').removeClass('active');
$(“#站点标题”).toggleClass('spy-active');
$(“html,body”).animate({
scrollTop:$(t).offset().top-50
}, {
持续时间:1e3,
});
setTimeout(函数(){
$(“#站点标题”).toggleClass('spy-active');
},1e3);
$('body').scrollspy({
目标:'.spy活动',
抵销:75
});
$(this.parent().addClass('active');
返回false;
});
});
//导航栏
变量距离=$(“#站点标题”).offset().top,
$window=$(window);
$window.scroll(函数(){
如果($window.scrollTop()>=距离){
$(“#站点标题”).addClass('fixed-nav')
}
如果($window.scrollTop()li{
浮动:无;
显示:内联块;
宽度:16.66666%;
}
#站点标题。导航栏导航李{
左边框:1px实心#C6;
}
#站点标题.可访问性{
位置:绝对位置;
右:-9999px;
}
#站点标题。导航栏{
边缘底部:0px;
}
#站点标题。导航栏导航{
高度:74px;
}
#站点标题。导航栏导航>li>a{
位置:相对位置;
高度:74px;
线高:55px;
颜色:#4B4C;
字体系列:'montserratregular',Helvetica,无衬线;
字号:1em;
-webkit过渡:背景色300ms线性;
过渡:背景色300ms线性;
填充顶部:15px;
}
#站点标题.commu{
右边框:1px实心#C6;
}
#站点标题。导航栏导航>li>a:悬停,
#站点标题。导航栏导航>li>a:焦点{
背景色:白色;
颜色:#e55240;
位置:相对位置;
}
#站点标题.导航栏切换{
边缘顶部:15px;
}
#站点标题。导航栏崩溃{
背景色:白色;
右边填充:0;
}
#站点标题.navbar nav>li>a:hover.fa plus,
#站点标题.navbar nav>li>a:focus.fa plus{
颜色:#e55240;
}
#站点标题。在图标之前{
右边距:24px;
}
#站点标题。导航栏右侧{
右边距:0px;
}
#网站标题.fa plus{
颜色:#e55240;
-webkit变换:旋转(-7度);
-ms变换:旋转(-7度);
变换:旋转(-7度);
字体大小:25px;
边缘顶部:10px;
位置:绝对位置;
顶部:22px;
-webkit转换:0.5s;
过渡:0.5s;
}
#站点标题。固定导航{
位置:固定;
排名:0;
}
#站点-标题.固定-导航.导航栏导航{
高度:50px;
-webkit转换:0.6s;
过渡:0.6s;
}
#site-header.fixed-nav.navbar nav>li>a{
高度:50px;
线高:26px;
-webkit转换:0.6s;
过渡:0.6s;
}
.固定导航+俯仰{
利润率最高:74像素;
}
.菜单按钮:悬停:在,
.菜单按钮:焦点:之前,
.菜单按钮:激活:之前{
左:0;
右:0;
}
a:以前{
左:0!重要;
右:0!重要;
}
.主动a{
颜色:#fff!重要;
背景:红色!重要;
}
#站点标题。固定导航{
位置:固定;
排名:0;
}
#站点-标题.固定-导航.导航栏导航{
高度:50px;
-webkit转换:0.6s;
过渡:0.6s;
}
#site-header.fixed-nav.navbar nav>li>a{
高度:50px;
线高:26px;
-webkit转换:0.6s;
过渡:0.6s;
}
.固定导航+俯仰{
利润率最高:74像素;
}

HTML Ipsum呈现 佩伦茨克居住者莫比·特里斯蒂克老年人、老年人、老年人、老年人、老年人、老年人
$(document).ready(function() {
    $(".scrollTo").click(function() {
        $(this).parent().addClass('scrolling-active');
        $('.scrollTo').not($(this)).parent().addClass('nostyle');
        var t = $(this).attr("href");
        $("html, body").animate({
            scrollTop: $(t).offset().top - 50
        }, {
            duration: 1e3,
            easing: "easeInOutQuint"
        });
        setTimeout(function() {   
            $('.scrollTo').parent().removeClass('scrolling-active');
            $('.scrollTo').not($(this)).parent().removeClass('nostyle');
        }, 1e3);
        return false;
    });
});

//navbar
var distance = $('#site-header').offset().top,
    $window = $(window);

$window.scroll(function() {
    if ( $window.scrollTop() >= distance ) {
        $('#site-header').addClass('fixed-nav')
    }
    if ( $window.scrollTop() <= distance ) {
        $('#site-header').removeClass('fixed-nav')
    }
});


$('body').scrollspy({ target: '.spy-active',offset: 75 });
$('.scrollTo').addClass('background');