php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...

Jquery判断页面元素是否在浏览器的可视区域内

前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是javascript操作,原生方法自然可以,不过Jquery已经封装了一些属性,使用起来更方便些,我们这里就讨论这种Jquery的方式.

假设此元素为 #item,先说几个关键的属性:

jQuery('#item').offset().top

item 的绝对偏移量,指#item的实际尺寸(即不包括外边框margin)的上边界到页面顶端的距离.这个值不随窗口滚动而改变

jQuery('#item').outerHeight()

item 的实际尺寸,即 height+padding+border

jQuery('#item').outerHeight(true)

item的实际尺寸及外边距,即 height+padding+border+margin

jQuery(window).scrollTop()

窗口滚动的顶部偏移量,即此时页面的上边界到可视区域的上边界的偏移量,简单的可以理解成整个页面滚动了多少距离

jQuery(window).height()

浏览器窗口可视区域的高度

在窗口上下滚动的情况下,一个页面元素的状态有3种,1.向上滚动超出可视区域,2.向下滚动超出可视区域,3.在可视区域内.很明显,我们需要的就是1和2两种情况.

情况1:

由于元素随页面向上滚动,所以自然能想到,在页面顶部偏移量不断增加的过程中,边界是从上至下经过一段距离,而这个距离的区域恰好就是元素本身的偏移量加上元素本身的高度,所以当

jQuery(window).scrollTop()>(jQuery('#item').offset().top+jQuery('#item').outerHeight())

这个表达式结果为true时,表示元素已经向上滚动,并超出了可视区域.

情况2:

与情况1相反,向下滚动的过程,页面顶部的偏移量是在不断减少中,所以当它小于元素偏移量与可视区域高度的差值的时候,元素则向下并超出了可视区域,即

jQuery(window).scrollTop()

那么结论就是将这两种情况作或运算即可达到目的.以下表达式结果如果为true,则 #item 不在可视区域内.反之则在可视区域内.

(jQuery(window).scrollTop()>(jQuery('#item').offset().top+jQuery('#item').outerHeight()))||((jQuery(window).scrollTop()+jQuery(window).height())

参考文章

相关阅读:

jquery如何判断3张图片都被点击过,并且是按顺序点击的

请问有没有跨平台的集群管理软件?

一个关于slice的问题

php关于可变类名的疑问

resin出现没响应的情况,有什么方法查看产生问题的原因?

停用硬件加速后,canvas渲染速度变快了?

大家怎样通过模板导出word

对已授权的微信用户,怎么能更换他的头像呢?

一个AJAX请求如何获取后端口多次返回的状态信息

标签怎么修改播放器按钮的样式

php 设计问题,我写了一个Config类,读取配置文件

spring mvc无法进入controller

多tab下ajax动态分页

怎样获取鼠标悬停1秒后的位置

margin: 150 auto;这种方式不能居中吗?

使用了七牛云储存水印样式后分享到qq空间出错

如何用C语言实现采用共享内存的进程间通信?

手机前端开发

less的函数内只能写css属性?能写css选择器吗?

ios app崩溃的时候如何通过代码层面确定崩溃位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu中安装hadoop集群

hadoop是由java 语言编写的主从结构分布式计算存储架构 准备工作: 操作系统: Ubuntu16.04 软件安装包:jdk-8u171-linux-x64.tar.gz ; hadoop-2.6.5.tar.gz 配置环境:3台虚拟机 master:192.168.122.10node1 …

php后端mysql,【后端开发】PHP如何处理MySQL死连接

本文主要介绍了PHP实现清除MySQL死连接的方法,通过定时执行php脚本实现针对mysql死链接的检查与清除功能,需要的朋友可以参考下。希望对大家有所帮助。连接的情况,主要表现为有过多的Sleep连接,并且Time时间很长,占满了…

5.14 js对象 函数 js操作document对象

---对象 var myObject {} /* 声明对象字面变量*/myObject点语法取值 赋值代码格式 var person { name : "zhangsan", age : 25, say :function(){ alert("说汉语"); } } 函数:有一定功能代码体的集合; 函数是由事件…

linux虚拟服务器新增磁盘怎么挂载,如何在vmware虚拟机Linux中增加硬盘的方法(教程)...

前期准备:创建虚拟硬盘1、关闭VM中正在运行的虚拟系统;2、在虚拟系统名称上点右键-》Virtual Machine Settings;3、在Hardware页点“Add”-》Add a hard disk-》Create a new virtual disk-》SC…

linux 内核3.8,[Beaglebone] BBB迁移到linux 3.8实时内核

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?动机之前使用TI SDK提供的3.2标准内核,在和fpga进行高速通信时出现CPU 100%中断响应延迟严重(偶尔>50ms)造成数据丢包。为达到严格的中断响应速度(&…

软考解析:2017年上半年下午试卷

软考解析:2017年上半年下午试卷 第一题:数据流图 第二题:数据库设计 第三题:面向对象开发 真题 理论 类图 状态图 解题思路 第四题:算法与数据结构 第五题:设计模式与Java转载于:https://www.cnblogs.com/…

PHP配置开发环境

PHP配置开发环境 1.建3个文件夹: 2:找到apache的安装包 3:可以随意写 4: 5:找到你的apache的路径 6:注意:不要解压到当前文件夹 7:剪切替换名字修改为php 8:在apache >…

linux下tar包安装sudo命令,ubuntu12.04LTS安装gv-412-Linux-x86.tar.gz方法

折腾了2天多,终于装好了。操作系统Ubuntu 12.04 LTS (在win7系统下用ubuntu的windows安装工具安装的,有点类似双系统)gaussian view程序gv-412-Linux-x86.tar.gz(软件可以从这里找到一些Linux&WinGaussian&gview下载地址)特别提示下面的设计到的…

linux 端口tnpl,Linux和Windows端口占用情况查看

Linux :netstat-t tcp三次握手-u udp直传数据-l 监听-r 路由-n 显示ip端口号-p 进程一般的我们使用 netstat -tnpl | grep xxx 配合管道符来查找[rootVM_48_173_centos conf]# netstat -tnplActive Internet connections (only servers)Proto Recv-Q Send-Q Local A…

SpringAOP aspectJ ProceedingJoinPoint 获取当前方法

aspectJ切面通过ProceedingJoinPoint想要获取当前执行的方法: 错误方法: Signature s pjp.getSignature(); MethodSignature ms (MethodSignature)s; Method m ms.getMethod(); 这种方式获取到的方法是接口的方法而不是具体的实现类的方法&…

linux修改挂载目录名字,linux下修改mount挂载目录名

有时根据情况需要更改mount挂载目录名来保持多个机器的统一,方便我们的分布式操作,下面是具体的操作细节。修改前:文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/VolGroup-lv_root50G 3.3G 44G 7% /tmpfs …

Linux禁止ip拒绝访问80,Linux iptables 设置允许(禁止)IP范围

假设有一个情况,我们要将某一个网段内的IP“一段IP”封锁起来,如192.168.0.2-192.168.0.61,请问该如何来设定这个规则?因为这个网段并没有符合任何一个CIDR网段,因此我们不能使用如“-s 192.168.0.0/28”的网段来匹配这…

转:linux中fork()函数详解

转:linux中fork()函数详解 https://blog.csdn.net/jason314/article/details/5640969转载于:https://www.cnblogs.com/igfirstblog/p/9046580.html

Linux表空间扩容,linux下oracle表空间导致磁盘空间不足

今天在执行oracle存储过程的时候报错,错误信息:"01652 无法通过128(在表空间temp中)扩展temp段"。在linux中执行df命令后发现表空间由于autoextend的原因,导致磁盘已用空间为100%。[rootlocalhost ~]# df -h文件系统 容量 已用 可用 已用% 挂…

作业1#python用列表实现多用户登录,并有三次机会

1 username ["juebai","haha"]2 password [123,456]3 count 04 while count < 3:5 _username input("用户名&#xff1a;")6 _password int(input("密码&#xff1a;"))7 if _username username[0] and _passwor…

linux命令 sed 有的功能有,Linux命令:sed简介

sed是一种在线行编辑器&#xff0c;一次处理一行。工作时&#xff0c;把当前处理的行放到“模式空间”中进行编辑&#xff0c;编辑完成后把内容输送至屏幕。语法&#xff1a;sed [OPTION]…{script}…[input file]选项&#xff1a;-r:支持正则表达式-n:静默模式&#xff0c;不显…

while中的break

while中的break意思是结束循环 start 0 while True:print(start)if start 100:break # 如果start 100 就退出循环start 1转载于:https://www.cnblogs.com/zhengkui/p/9052875.html

linux tcp header更改,Linux Netfilter中修改TCP/UDP Payload的方法

来自linux-2.6.36/net/ipv4/netfilter/nf_nat_helper.c注&#xff1a;该代码可以移植到ebtables中使用&#xff0c;但需要注意struct rtable *rt结构在ebtables中是没有的。修改UDP payload的代码&#xff1a;/* Unusual, but possible case. */static int enlarge_skb(struct …

Servlet跳转到JSP页面后的路径问题相关解释

一、现象与概念 1. 问题 在Servlet转发到JSP页面时&#xff0c;此时浏览器地址栏上显示的是Servlet的路径&#xff0c;而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时&#xff0c;则会出现路径混乱问题。 2. 绝对路径概念 相对于con…

linux7 kickstart,Linux运维知识之CENTOS 7 验证KICKSTART文件是否完整方法

本文主要向大家介绍了Linux运维知识之CENTOS 7 验证KICKSTART文件是否完整方法&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习Linux运维知识有所帮助。功能简介&#xff1a;CentOS 7 包含 ksvalidator 命令行程序&#xff0c;可使用该程序进行确认Kickstart文…