javascript - Jquery 检查元素在视口(viewport)中是否可见

标签 javascript jquery visible

<分区>

无论窗口滚动位置如何,检查 div 类“媒体”是否在浏览器可视视口(viewport)内的功能。

<HTML>
<HEAD>
  <TITLE>My first HTML document</TITLE>
</HEAD>
<BODY>
  <div class="main">
   <div class="media"></div>
  </div>

</BODY>
</HTML>

尝试使用此插件 https://github.com/customd/jquery-visible有了这个功能但是 我不知道如何让它工作。

$('#element').visible( true );

最佳答案

您可以像这样编写一个 jQuery 函数来确定元素是否在视口(viewport)中。

在包含 jQuery 之后在某处包含它:

$.fn.isInViewport = function() {
    var elementTop = $(this).offset().top;
    var elementBottom = elementTop + $(this).outerHeight();

    var viewportTop = $(window).scrollTop();
    var viewportBottom = viewportTop + $(window).height();

    return elementBottom > viewportTop && elementTop < viewportBottom;
};

示例用法:

$(window).on('resize scroll', function() {
    if ($('#Something').isInViewport()) {
        // do something
    } else {
        // do something else
    }
});

请注意,这只会检查元素的顶部和底部位置,不会检查元素是否在水平视口(viewport)之外。

关于javascript - Jquery 检查元素在视口(viewport)中是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54293320/

上一篇:html - 边框在一侧的相对框中的绝对定位元素问题

下一篇:html - 如何在比例动画中将原点保持在图像的中心?

相关文章:

java - 设置一些已处置或不可见的java

javascript - 原型(prototype):将此可见性检查脚本隐藏为原型(prototype)语法?

c# - 在 .NET 中使进程窗口可见/不可见

javascript - 自定义对话框以在浏览器选项卡关闭时获得确认

javascript - 如何使用 PHP 从动态网页中抓取页面链接?

javascript - 计算两个 "</span>"之间的字符串(数字),并将其替换为值的一半

javascript - 如何将光标放在文本区域时弹出模式

javascript - 如何使用 jquery $get() 从外部网站将文本文件导入 javascript?

javascript - 代码镜像覆盖应用

javascript - 当用户离开窗口而不保存数据时提供自定义消息