Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查元素在屏幕JavaScript/jQuery/iScroll上是否可见_Javascript_Jquery_Html_Css_Iscroll - Fatal编程技术网

检查元素在屏幕JavaScript/jQuery/iScroll上是否可见

检查元素在屏幕JavaScript/jQuery/iScroll上是否可见,javascript,jquery,html,css,iscroll,Javascript,Jquery,Html,Css,Iscroll,我使用iScroll进行水平滚动,我有一个很长的水平表,我试图查看特定的列是否可见 我尝试了我在网上找到的以下代码: function checkVisible( elm, evalType ) { evalType = evalType || "visible"; var vpH = $(window).height(), // Viewport Height st = $(window).scrollTop(), // Scroll Top y = $(elm).offse

我使用iScroll进行水平滚动,我有一个很长的水平表,我试图查看特定的列是否可见

我尝试了我在网上找到的以下代码:

function checkVisible( elm, evalType ) {
evalType = evalType || "visible";

var vpH = $(window).height(), // Viewport Height
    st = $(window).scrollTop(), // Scroll Top
    y = $(elm).offset().top,
    elementHeight = $(elm).height();

if (evalType === "visible") return ((y < (vpH + st)) && (y > (st - elementHeight)));
if (evalType === "above") return ((y < (vpH + st)));
alert('done');
};
函数检查可见(elm,evalType){
evalType=evalType | |“可见”;
var vpH=$(窗口).height(),//视口高度
st=$(窗口).scrollTop(),//Scroll Top
y=$(elm).offset().top,
elementHeight=$(elm).height();
if(evalType==“可见”)返回((y<(vpH+st))&&(y>(st-elementHeight));
如果(evalType==“高于”)返回((y<(vpH+st));
警报(“完成”);
};
然而,它似乎总是告诉我元素在屏幕上是可见的,即使它不是。有没有其他方法可以判断这个表列是否在浏览器的屏幕上


谢谢。

页面屏幕可见部分的上限将是
$(窗口)。scrollTop()

下限为
$(窗口).scrollTop()+$(窗口).height()

(“上”和“下”是指物理边界)

确定
$(element).offset().top
是否在这些值之间,以了解元素是否在可见视口中

我已将其嵌入滚动处理程序中,但您只需构建一个函数来测试元素:)

有关完整示例,请参见此提琴(当绿色div可见时,请观看控制台):

$(函数(){
$(窗口).on(“滚动”,函数(){
var up=$(窗口).scrollTop(),
向下=$(窗口).scrollTop()+$(窗口).height();
如果($(“div”).offset().top>up)和($(“div”).offset().top
div{
背景:绿色;
颜色:白色;
}

我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!Lorem ipsum dolor sit amet,奉献精英。我们必须清楚地认识到,我们必须在所有人面前明确地表达自己的观点!这是一个很好的解释