主啊,欢迎。
给定:页面上有几个表单块<div id="idXXX"></div>
任务:滚动页面时,如果块在用户可见的浏览器屏幕部分 - 调用 ajax 脚本(标记为已读)
我正在尝试用jquery解决这个问题,我赢不了:(我很乐意提供帮助,在此先感谢。
理想情况下,不会再次调用相同的函数,即 这样它对每个块都有效一次
大纲:
function inWindow(s)
{
var scrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var currentEls = $(s);
var ids=s;
var offset = currentEls.offset();
if(scrollTop <= offset.top && (currentEls.height() + offset.top) < (scrollTop + windowHeight))
{
/*
$.ajax({
url: "status.php?admin='.$admin.'&id=" + ids + "" // не работает, не вставляет ids
});
*/
console.log("Блок "+ids+" в области видимости");
}
}
$(document).scroll(function ()
{
inWindow("#id1")
});
$(document).scroll(function ()
{
inWindow("#id2")
});
$(document).scroll(function ()
{
inWindow("#id3")
});
$(document).scroll(function ()
{
inWindow("#id4")
});
$(document).scroll(function ()
{
inWindow("#id5")
});
.active
{
height:300px;
background-color:red;
margin:10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="id1" class="active"></div>
<div id="id2" class="active"></div>
<div id="id3" class="active"></div>
<div id="id4" class="active"></div>
<div id="id5" class="active"></div>
代码注释中的解释
我建议
.active块之间根本没有缩进。