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

Javascript 将元素偏移量添加到jQuery偏移量计算中,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我对jquery比较陌生,我正在尝试为主体中的div元素找到正确的偏移量。每当我向下滚动并传递该元素的顶部偏移量时,我希望使该div元素保持粘性 我遵循了本教程:它可以工作,但我的标题中有一个metaslider,该元素的宽度/高度不在计算范围内,无法找到右偏移量 结果是我的元素很快就变成了粘性元素,有没有一种方法可以手动将滑块坐标(偏移)添加到我要使其粘性的元素的偏移计算中 var offerteOffset = jQuery(".agendawrap").offset().top //+ m

我对jquery比较陌生,我正在尝试为主体中的div元素找到正确的偏移量。每当我向下滚动并传递该元素的顶部偏移量时,我希望使该div元素保持粘性

我遵循了本教程:它可以工作,但我的标题中有一个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");
        }

    });

我真不敢相信有人教得这么差

首先:不要总是写
jQuery
。看一看。 基本上它说:使用具有自己作用域的调用函数:

(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);

我真不敢相信有人教得这么差

首先:不要总是写
jQuery
。看一看。 基本上它说:使用具有自己作用域的调用函数:

(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);

好的,非常感谢,你能把我链接到一个好的教程吗?因为我想知道它是如何工作的,而不仅仅是复制/粘贴,我在wordpress中使用它,我想这就是为什么我使用jQuery而不是$@alex@W.Romijn无论您在哪个环境中使用它,您都可以在任何地方使用上述方法,这是当前的最佳实践。我强烈建议你试着了解那里发生了什么。我真的很喜欢你尝试去理解,而不仅仅是复制/粘贴,所以如果你有兴趣,我会给你提供一个小的聊天室:)是的,听起来很棒!如何启动聊天会话@AlexAllright非常感谢,你能把我链接到一个好的教程吗?因为我想知道它是如何工作的,而不仅仅是复制/粘贴,我在wordpress中使用它,我想这就是为什么我使用jQuery而不是$@alex@W.Romijn无论您在哪个环境中使用它,您都可以在任何地方使用上述方法,这是当前的最佳实践。我强烈建议你试着了解那里发生了什么。我真的很喜欢你尝试去理解,而不仅仅是复制/粘贴,所以如果你有兴趣,我会给你提供一个小的聊天室:)是的,听起来很棒!如何启动聊天会话@亚历克斯