Jquery 一旦滚动过去,使div固定

Jquery 一旦滚动过去,使div固定,jquery,html,css,twitter-bootstrap-3,Jquery,Html,Css,Twitter Bootstrap 3,我制作了一个jQuery函数,它应该能够在导航条下面固定三个元素,一旦滚动过去。我已经让它有点工作,但有点小故障。当我滚动时,该函数在固定和静态之间不断切换。我做错了什么 函数滚动_过去(){ var jobs_cont=jQuery(“#jobs_cont”).outerHeight()/2; var top_position=jQuery(“#jobs_cont”).offset().top; var位置=工作岗位+顶部位置; var nav_height=jQuery(“#top_flu

我制作了一个jQuery函数,它应该能够在导航条下面固定三个元素,一旦滚动过去。我已经让它有点工作,但有点小故障。当我滚动时,该函数在固定和静态之间不断切换。我做错了什么

函数滚动_过去(){
var jobs_cont=jQuery(“#jobs_cont”).outerHeight()/2;
var top_position=jQuery(“#jobs_cont”).offset().top;
var位置=工作岗位+顶部位置;
var nav_height=jQuery(“#top_fluid_cont”).height();
var wind_pos=jQuery(窗口).scrollTop()+导航高度;
如果(风位置>=位置){
jQuery(
#工作内容、.工作信息、.工作头衔、.薪水、.简历按钮、.工作br、.工作空间
).addClass(“固定”);
}否则{
jQuery(
#工作内容、.工作信息、.工作头衔、.薪水、.简历按钮、.工作br、.工作空间
).removeClass(“固定”);
}
}
jQuery(窗口).滚动(函数(){
滚动_过去();
});
正文{
高度:5000px;
}
#顶部流体控制{
位置:固定;
排名:0;
宽度:100%;
}
#导航{
背景颜色:灰色;
}
#形象{
背景图片:url(https://images.unsplash.com/photo-1507090960745-b32f65d3113a?dpr=1&auto=compress,format&fit=crop&w=2700&h=&q=80&cs=tinysrgb&crop=);
背景重复:无重复;
背景尺寸:封面;
背景位置:中心;
高度:100vh;
}
#作业(续)已修复{
边际上限:0;
位置:固定;
顶部:60px;
}
.job_info.fixed{
身高:0;
溢出:隐藏;
}
.job_title.fixed{
字体大小:1.4rem;
}
.固定工资{
字体大小:1.4rem;
}
.cv_按钮。已修复{
显示:无;
}
.固定的工作{
显示:无;
}
.jobs_space.fixed{
显示:内联;
}

航行
施工现场主管的角色

工资:20000至22000英镑

我们的客户是一家总部位于利兹的知名建筑和翻新公司,希望在其团队中增加一名经验丰富的施工现场主管

施工合同经理角色

工资:40000-45000英镑

我们的客户是一家总部位于利兹的知名建筑和翻新公司,希望在他们的

毕业生数量测量师角色

工资:20000至22000英镑

我们的客户是一家总部位于利兹的知名建筑和翻新公司,希望在他们的团队中增加一名毕业工料测量师


出现故障的原因是,通过将类
固定
应用于
#job_cont
您正在向上移动
#job_cont
,这会导致代码再次触发并删除该类

一个可能的解决方案是添加一个元素,该元素不移动,但具有与
#job_cont
相同的位置。这就是我在提供的代码片段中所做的

检查 代码段中的

函数滚动_过去(){
var jobs_cont=jQuery(#scrollCheck”).outerHeight()/2;
var top_position=jQuery(“#滚动检查”).offset().top;
var位置=工作岗位+顶部位置;
var nav_height=jQuery(“#top_fluid_cont”).height();
var wind_pos=jQuery(窗口).scrollTop()+导航高度;
如果(风位置>=位置){
jQuery(
#工作内容、.工作信息、.工作头衔、.薪水、.简历按钮、.工作br、.工作空间
).addClass(“固定”);
}否则{
jQuery(
#工作内容、.工作信息、.工作头衔、.薪水、.简历按钮、.工作br、.工作空间
).removeClass(“固定”);
}
}
jQuery(窗口).滚动(函数(){
滚动_过去();
});
正文{
高度:5000px;
}
#顶部流体控制{
位置:固定;
排名:0;
宽度:100%;
}
#导航{
背景颜色:灰色;
}
#形象{
背景图片:url(https://images.unsplash.com/photo-1507090960745-b32f65d3113a?dpr=1&auto=compress,format&fit=crop&w=2700&h=&q=80&cs=tinysrgb&crop=);
背景重复:无重复;
背景尺寸:封面;
背景位置:中心;
高度:100vh;
}
#作业(续)已修复{
边际上限:0;
位置:固定;
顶部:60px;
}
.job_info.fixed{
身高:0;
溢出:隐藏;
}
.job_title.fixed{
字体大小:1.4rem;
}
.固定工资{
字体大小:1.4rem;
}
.cv_按钮。已修复{
显示:无;
}
.固定的工作{
显示:无;
}
.jobs_space.fixed{
显示:内联;
}

航行
施工现场主管的角色

工资:20000至22000英镑

我们的客户是一家总部位于利兹的知名建筑和翻新公司,希望在其团队中增加一名经验丰富的施工现场主管

施工合同经理角色

工资:40000-45000英镑

我们的客户是一家总部位于利兹的知名建筑和翻新公司,希望在他们的

毕业生数量测量师角色

工资:20000至22000英镑

我们的客户是一家总部位于利兹的久负盛名的建筑和翻新公司,希望在他们的t