2015-11-02 176 views
1

我对jquery比较陌生,我试图找到body内部div元素的正确偏移量。我想让这个div元素粘滞,只要我向下滚动并传递这个元素的顶部偏移量。将元素偏移量添加到jQuery偏移量计算中

我跟着这个教程:https://www.youtube.com/watch?v=utonytGKodc和它的作品,但我有一个metaslider在我的头和这个元素的宽度/高度留出了计算,以找到合适的偏移....

结果是我的元素成为一个粘性元素的方式很快,有没有办法我可以手动添加滑块坐标(偏移量)到我想粘滞元素的偏移量计算?

var offerteOffset = jQuery(".agendawrap").offset().top //+ metaslider coordinates??; 
    alert(offerteOffset); 

    jQuery(window).scroll(function() { 
     var scrollPos = jQuery(window).scrollTop(); 

     if (scrollPos >= offerteOffset) { 
      jQuery(".agendawrap").addClass("fixed"); 
     } else { 
      jQuery(".agendawrap").removeClass("fixed"); 
     } 

    }); 

回答

0

我不相信人们做这样糟糕的教程。

首先:不要一直写jQuery。看看this thread。 基本上它说:使用调用函数有自己的适用范围:

(function($) { /* all your jQuery goes here */ })(jQuery); 

所以,你可以只输入$而不是jQuery

你原来的问题:

(function($) { 

    $(function() { // document ready... 

    var scrollTolerance = 50, 
     agendawrap = $(".agendawrap"), 
     offerteOffset = agendawrap.offset().top; 

    $(window).on('scroll', function() { 
     var scrollPos = $(window).scrollTop(); 

     // OR: if (scrollPos - scrollTolerance >= offerteOffset) { 
     if (scrollPos + scrollTolerance >= offerteOffset) { 
      agendawrap.addClass("fixed"); 
     } 
     else { 
      agendawrap.removeClass("fixed"); 
     } 

    }); 

    }); 

})(jQuery); 
+0

奥莱特非常感谢,你可以联系我一个很好的教程,因为我想知道这是如何工作的,而不是仅仅复制/粘贴 –

+0

流,我用它在WordPress的我认为这就是为什么我使用jQuery而不是$? @alex –

+0

@ W.Romijn不管你在哪个环境中使用它,你都可以使用上述方式无处不在,这是当前的最佳实践。我强烈建议你试着了解那里发生的事情。我真的很喜欢你试图理解而不仅仅是复制/粘贴,所以如果你有兴趣,我会为你提供一个小聊天会话:) – Alex