分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

jquery判断元素是否出现在可视区

发布时间:2023-09-06 01:57责任编辑:郭大石关键词:暂无标签
 

在我们的日常开发中,经常会遇到当元素出现在可视区的时候需要去出发某一事件的情况。
我最近在优化环球网首页的时候,将非可视区的代码全部放入到webComponent中。打算当这个元素出现在可视区的时候去加载对应的shadowRoot。

那么,言归正传,对于我这个前端小白,还是好先搞定如何判断元素出现在可视区啊!

jquery实现起来比较简单,先解释下几个东东

offset().top和offsetTop;
offsetTop:元素border外侧到offsetParent()的偏移量。(offsetParent():是元素的第一级拥有定位属性(absolute/relative/fixed)的父元素).
offset().top:到document的绝对偏移量,这个当然就是我们需要的。offset().top当浏览器出现滚动条的时候,offset().top是不会变化的,当没有滚动条的时候,这个值是会变化的(可以理解的哈)。
outHeight(): 元素的height+padding+border
outHeight(true):元素的height+padding+border+margin
$(window).height():浏览器可视窗口的高度
$(window).scrollTop():document的顶部和浏览器顶部的距离


所以我们就可以很简单的判断元素是不是出现在浏览器可视区了:
代码如下(这里我故意加了个div,position为relative)


 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head>    <meta charset="utf-8">    <title>js</title>    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>    <script type="text/javascript">        $(document).ready(function () {            $(window).scroll(function () {                var a = $("#eq").offset().top;                console.log(a);                console.log($(window).scrollTop());                console.log($(window).height());                if (a >= $(window).scrollTop() && a < ($(window).scrollTop() + $(window).height())) {                    console.log("div在可视范围");                }            });        });    </script></head><body><div style="width:1px;height:2000px; -webkit-tap-highlight-color: transparent;">></div><div style="position:relative">    <div id="eq" style=" width:100px; height:100px; ">1</div></div><div style="width:1px;height:2000px; -webkit-tap-highlight-color: transparent;">></div></body></html>

jquery判断元素是否出现在可视区

原文地址:https://www.cnblogs.com/gluncle/p/9117736.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved