以下代码旨在执行许多操作:
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)
答案 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/