jQuery fadeIn()特定div位于HTML部分的顶部

时间:2011-10-28 09:00:47

标签: javascript jquery debugging

以下代码旨在执行许多操作:

1)找到当前滚动位置

2)对于每个.popup_next(网站的每个部分都有一个 - 每个部分都是article),我们会找到它的父article并得到它offsetTop
3)向.offsetTop值添加30px并调用我们的$offsetHide,因为如果我们的滚动当前滚动位置大于offsetTop且小于$offsetHide那么我们fadeIn(),如果滚动位置是在该范围之外的任何地方,我们fadeOut() .popup_next div。

很抱歉,我缺少更具体的细节,但以下代码旨在实现上述效果。我在javascript控制台里检查了它,没有错误。不幸的是,语法似乎没有错误,但没有任何影响发生,任何人都可以发现我的代码中的错误?

见下文:

* 编辑:使用$(".popup_next").scroll(function() {时是否存在错误,此函数不是在整个窗口中查找滚动而是仅滚动.popup_next元素? *

* 编辑#2:以下是效果不工作的示例:http://jsfiddle.net/XG24G以下是我删除变量并使其成为简单静态值时正常工作的示例(授予{ {1}}未被使用,因此它会错误地触发所有内容):http://jsfiddle.net/UdXvM/1 *

$(this)

1 个答案:

答案 0 :(得分:1)

$(".popup_next").scroll更改为$(".popup_next").each。实际上,该代码仅在滚动.popup_next元素时执行 - 也就是说,它有overflow: auto;并且滚动条可见并且其内容已滚动。要在滚动窗口时为每个.popup_next执行该代码,您需要.each()

修改:此外,没有.offsetTop()方法。你想要.offset().top

http://jsfiddle.net/gilly3/Wcz3R/

修改:在您的jsfiddle中进行此修正可修复它:http://jsfiddle.net/gilly3/XG24G/1/