.scroll 函数中的 .offset 函数在 jQuery 中不起作用

Posted

技术标签:

【中文标题】.scroll 函数中的 .offset 函数在 jQuery 中不起作用【英文标题】:.offset function inside .scroll function not works in jQuery 【发布时间】:2015-03-13 06:48:08 【问题描述】:

我想在滚动时检测“#select”元素的顶部。我有以下代码:

$(document).ready(function()
  $(window).scroll(function()
    console.log($('#select').offset().top);
  );
);
<div id="select"></div>

但它打印的东西在滚动过程中并不固定,我认为它是 $(window).scrollTop() 的值。当我将 'console.log ...' 放在 '$(window)....' 函数之外时,一切正常。有什么问题?

我现在发现问题出在选择器上。在某些情况下,当我更改 id 时它可以正常工作,但是对于“选择”id 它不起作用并且它一直打印 $(window).scrollTop() 。任何人都可以在这种情况下提供帮助? (可能'#select'元素的css有问题)

【问题讨论】:

语法错误,几乎所有内容都丢失了! 而且它似乎对我来说是固定的 -> jsfiddle.net/8tj34c4w @adeneo,我修复了 OP 问题中的编码错误(根据您的反馈),并且 sn-p 现在按预期运行,;-) @Marventus - 请不要编辑问题的代码。见,How far can I refactor the code in someone else's question? 和 When is it appropriate to edit someone else's code? 糟糕!这是一个打字错误。我真正的代码是你想的代码但是问题没有解决。 【参考方案1】:

您可能缺少一些括号...

试试这个...

$(document).ready(function()
  $(window).scroll(function()
    console.log($('#select').offset().top);
  );
);

【讨论】:

以上是关于.scroll 函数中的 .offset 函数在 jQuery 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

07-BOM client offset scroll 的系列

TypeError jQuery offset().top 未定义

WebApls-元素(offset, client, scroll)

PC 端网页特效

js中的盒子模型-client/offset/scroll

offset系列,scroll系列