Javascript 如何为一个scrollspy位置指定不同的scrollTop值?

Javascript 如何为一个scrollspy位置指定不同的scrollTop值?,javascript,jquery,html,web,Javascript,Jquery,Html,Web,我有一个脚本,它指示菜单中的当前位置,并在上面设置一个活动类。但是我需要id联系方式的具体规则。我需要为该ID位置的scrollTop值添加1000px 这是我的密码: var lastId, topMenu = $(".nav"), topMenuHeight = topMenu.outerHeight()+15, menuItems = topMenu.find("a"), scrollItems = menuItems.map(function(){

我有一个脚本,它指示菜单中的当前位置,并在上面设置一个活动类。但是我需要id
联系方式的具体规则。我需要为该ID位置的scrollTop值添加1000px

这是我的密码:

var lastId,
    topMenu = $(".nav"),
    topMenuHeight = topMenu.outerHeight()+15,
    menuItems = topMenu.find("a"),
    scrollItems = menuItems.map(function(){
      var item = $($(this).attr("href"));
      if (item.length) { return item; }
    });
menuItems.click(function(e){
  var href = $(this).attr("href"),
      offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight-80+1;
  $('html, body').stop().animate({
      scrollTop: offsetTop
  }, 300);
  e.preventDefault();
});
$(window).scroll(function(){
   var fromTop = $(this).scrollTop()+topMenuHeight+80;
   var cur = scrollItems.map(function(){
     if ($(this).offset().top < fromTop)
       return this;
   });
   cur = cur[cur.length-1];
   var id = cur && cur.length ? cur[0].id : "";

   if (lastId !== id) {
       lastId = id;
       menuItems
         .parent().removeClass("active")
         .end().filter("[href='#"+id+"']").parent().addClass("active");
   }
});
var lastId,
topMenu=$(“.nav”),
topMenuHeight=topMenu.outerHeight()+15,
menuItems=topMenu.find(“a”),
scrollItems=menuItems.map(函数(){
var item=$($(this.attr(“href”));
if(item.length){return item;}
});
菜单项。单击(函数(e){
var href=$(this.attr(“href”),
offsetTop=href==“#”?0:$(href).offset().top-topMenuHeight-80+1;
$('html,body').stop().animate({
滚动顶:偏置
}, 300);
e、 预防默认值();
});
$(窗口)。滚动(函数(){
var fromTop=$(this.scrollTop()+topMenuHeight+80;
var cur=scrollItems.map(函数(){
if($(this).offset().top
我将使用jQuery的
数据
方法将所需的额外像素嵌入到HTML元素中。您可以在下面的代码片段中看到这个想法正在发挥作用

您可以使用此想法来控制任何元素被视为“活动”的点,而不仅仅是接触形式

var lastId,
topMenu=$(“.nav”),
topMenuHeight=topMenu.outerHeight()+15,
menuItems=topMenu.find(“a”),
scrollItems=menuItems.map(函数(){
var id=$(this.attr(“href”);
变量项=$(id);
如果(项目长度){
如果(id==“#contact_form”){//这里我们嵌入了所需的额外fromTop值
项目.数据(“extraTop”,1000);
}
退货项目;
}
});
菜单项。单击(函数(e){
var href=$(this.attr(“href”),
offsetTop=href==“#”?0:$(href).offset().top-topMenuHeight-80+1;
$('html,body').stop().animate({
滚动顶:偏置
}, 300);
e、 预防默认值();
});
$(窗口)。滚动(函数(){
var$window=$(此);
var fromTop=$window.scrollTop()+topMenuHeight+80;
var cur=scrollItems.map(函数(){
var$el=$(本);
var top=$el.offset().top;
var extra=$el.data(“extraTop”);//这里我们读取“extraTop”数据属性
if(!extra)//如果不存在,则强制它为数字0
额外=0;
if(top
.active{
背景:黑色;
颜色:白色;
}
div{
高度:1300px;
}
.导航{
位置:固定;
排名:0;
高度:自动;
}
瑞德先生{
背景#ff2a2a;
}
格林先生{
背景#33a033;
}
蓝先生{
背景:#0080ff;
}

东西 东西 东西 联系人: 东西 东西 其他