将元素偏移量添加到jQuery偏移量计算中

时间:2015-11-02 13:18:03

标签: javascript jquery html css

我对jquery很新,我正在尝试为body内部的div元素找到正确的偏移量。每当我向下滚动并传递此元素的顶部偏移量时,我想让这个div元素变粘。

我遵循了这个教程: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");
        }

    });

1 个答案:

答案 0 :(得分: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);