使粘性div达到一定程度

时间:2016-04-21 20:31:39

标签: javascript jquery html css

当他到达某个div时,我试图让div开始修复,并且当他击中另一个div时停止粘性,但保持在他离开的位置。粘滞div应该停止的div的位置可以是任何位置,具体取决于文章长度。我可以让它在一个决议上工作,但在其他决议上却没有那么多。

令人惊讶的是,大多数情况下修复工作,但是"停止修复"部分大部分都不起作用(我的div只是高度混乱)。

这是我的代码:

$(document).scroll(function() {
   var topOfLastDiv = ($("#scroll_to").position().top)-630;
   var topOfFirstDiv = ($("#tour_user_info").position().top)+20;
   var topOfLastDivSocial = topOfLastDiv+100;
   var y = $(document).scrollTop(),
       header = $("#tour_price_map");
       social_media = $('#social_media_sticky');

   if (y < topOfFirstDiv) {
       header.css({position: "relative", "top" : "0px", "transform": "translateX(0)"});
       header.fadeIn(100);
       social_media.fadeOut(100);
   }
   if(y >= topOfFirstDiv && y<topOfLastDiv)  {
       social_media.fadeIn(100);
       header.css({position: "fixed", "top" : "50px", "transform": "translateX(216.2%)"});
   }
   if (y >= topOfLastDiv && y < topOfLastDivSocial) {
       header.css({position: "relative", "top" : topOfLastDiv-520, "transform": "translateX(0)"});
   }
   if (y>= topOfLastDivSocial) {
       social_media.fadeOut(100);
       header.css({position: "relative", "top" : topOfLastDiv-520, "transform": "translateX(0)"});
   }
});

代码中的随机数字是我试图让它适合我的笔记本电脑分辨率,然后才能运行。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我在最后2个if子句中使用“绝对”而不是“相对”来修复它,并相应调整“top”和“transform”。