JS滚动条位置,顶部,底部,触发事件

效果图:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>JS滚动条位置,顶部,底部,触发事件</title></head><body><style>body {margin: 0;padding: 0;height: 200vh;}</style><script>function getScrollTop() {var scrollTop = 0,bodyScrollTop = 0,documentScrollTop = 0;if (document.body) {bodyScrollTop = document.body.scrollTop;}if (document.documentElement) {documentScrollTop = document.documentElement.scrollTop;}scrollTop =bodyScrollTop - documentScrollTop > 0? bodyScrollTop: documentScrollTop;return scrollTop;}console.log("被卷曲的头",document.body.scrollTop,document.documentElement.scrollTop);function getWindowHeight() {var windowHeight = 0;if (document.compatMode == "CSS1Compat") {windowHeight = document.documentElement.clientHeight;} else {windowHeight = document.body.clientHeight;}return windowHeight;}console.log("客户端可视区域高度",document.body.clientHeight,document.documentElement.clientHeight);// 文档的总高度function getScrollHeight() {var scrollHeight = 0,bodyScrollHeight = 0,documentScrollHeight = 0;if (document.body) {bodyScrollHeight = document.body.scrollHeight;}if (document.documentElement) {documentScrollHeight = document.documentElement.scrollHeight;}scrollHeight =bodyScrollHeight - documentScrollHeight > 0? bodyScrollHeight: documentScrollHeight;return scrollHeight;}console.log("文档总高度",document.body.scrollHeight,document.documentElement.scrollHeight);window.onscroll = function() {if (getScrollTop() == 0) {console.log("顶部");}if (getScrollTop() + getWindowHeight() == getScrollHeight()) {console.log("已经到最底部了!!");}};</script></body>
</html>

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

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

相关文章

ArcGIS 10.0安装之 ArcSDE的安装

第三部分 SDE的安装、部署 1、 安装SDE程序&#xff0c;并进行注册 &#xff08;1&#xff09;选择注册机&#xff0c;点击server标签&#xff0c;在Feature下拉列表框选择arcsdeserver&#xff0c;Version下拉列表框选择100&#xff0c;点击ALL按钮&#xff0c;生成license文件…

自适应表格连续字符换行及单行溢出点点点显示

我们应该都知道使用 让连续的英文数字字符换行显示 让单行文字超出的时候使用点点点表示 但是&#xff0c;如果是自适应的表格中&#xff0c;我们要实现上面两个效果&#xff0c;可能就会遇到挫折&#xff0c;你会发现屡试不爽的方法现在完全被无视了&#xff01; 例如&#…

javascript学习系列(23):数组中的解构方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说解…

ULONGLONG乘法分析

From: http://blog.csdn.net/syf442/article/details/6077715 64位乘法分析&#xff1a; VC6 Console Code&#xff1a; int main(int argc, char* argv[]) { ULONGLONG a 0x87654321; ULONGLONG b 0x100000001; a*b; //::MessageBox(NULL,&…

T-SQL中REPLACE的用法_字符串替换

REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。 语法 REPLACE ( string_expression1 , string_expression2 , string_expression3 ) 参数 string_expression1 待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。 str…

Linux字符编码转换 UTF8转GB3212

在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。 一、利用iconv函数族进行编码转换 iconv函数族的头文在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用…

ULARGE_INTEGER运算

在调用GetDiskFreeSpaceEx()获取磁盘空间时&#xff0c;由于参数是ULARGE_INTEGER(64位整数)&#xff0c;所以普通的“加减乘除”并不支持(是没有实现)&#xff0c;因此我们采用其他办法来实现&#xff0c;先来看下ULARGE_INTEGER的结构定义&#xff1a; typedef union _ULARG…

IMG图片和文字同一行显示,图片和文字居中显示

问题其实很好解决&#xff0c;只要设定img标签的vertical-align CSS属性就好了&#xff0c;代码如下&#xff1a;

Leetcode刷题(6)有效的括号

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0…

eclipe安装中文语言包 CDT Pydev

一、中文语言包eclipse的国际化项目已经交由Eclipse宝贝项目来进行[url]https://babel.eclipse.org[/url]在线安装&#xff1a;&#xff08;1&#xff09;打开eclipse&#xff0c;菜单 Help -> Software Update …&#xff1b;&#xff08;2&#xff09;打开Software Update…

vue-环境变量和模式

vue项目使用.env文件配置全局环境变量 模式是 Vue CLI 项目中一个重要的概念。默认情况下&#xff0c;一个 Vue CLI 项目有三个模式&#xff1a; development 模式用于 vue-cli-service serve production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e test 模…

printf的两个需要注意的问题:无符号整数和64位整数

From: http://www.cnblogs.com/lidp/articles/1696079.html 1) %d和%u的区别unsigned int dwValue;printf("%d", dwValue);在dwValue的值大于0x7FFFFFFF时&#xff0c;输出的结果会变成负数。正确的程序应该为&#xff1a;printf("%u", dwValue); 2) 使用…

CSS 相对|绝对(relative/absolute)定位系列(一)

1. 绝对定位和浮动元素是近亲&#xff1a;都具备包裹性和破坏性 包裹性&#xff1a;包裹性换种说法就是让元素inline-block化&#xff0c;例如一个div标签默认宽度是100%显示的&#xff0c;但是一旦被absolute属性缠上&#xff0c;则100%默认宽度就会变成自适应内部元素的宽度…

SharePoint 2013 List 备份使用

在测试环境新建List后经过不懈的调整&#xff0c;验证终于做出一个像模像样的表单。 这时候问题来。。。 要怎么迁移到生产环境或者正式环境呢&#xff1f; 在网上找了一些资料&#xff0c;不过都是10的。。 其实想想13跟10区别不大&#xff0c;于是顺利找到了解决方案 备份Lis…

javascript学习系列(24):数组中的substring方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说s…

LINUX下SYN***战

(一)SYN***原理SYN***属于DOS***的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器CPU和内存资源.SYN***聊了能影响主机外,还可以危 害路由器,防火墙等网络系统,事实上SYN***并不管目标是什么系统,只要这些系统打开TCP服务就可以实施.我们知道,在网络中两台电脑建…

将一个BYTE数组转换成16进制字符串和10进制字符串格式

背景&#xff1a; unsigned char port[5]; 以02x的格式打印出来是 00 00 02 00 00 1.如何转成16进制形式的字符串&#xff0c;使得char *strport16 "0000020000"; 2.如何转成10进制形式的字符串&#xff0c;使得char *strport10 "131072"; C code:…

CSS 相对|绝对(relative/absolute)定位系列(二)

1. 因为事先标准就已经在文字的后面显示&#xff0c;设置absolute之后因为跟随性仍然是在原来的文字&#xff0c;然后再设置margin实现定位即可 2. absolute正业之元素隐藏 元素隐藏与显示是我们在页面制作与交互效果实现中非常常见的&#xff0c;如果您只是使用display:none与…

7天后自动更新cookie

原生js操作cookie 6s后cookie自动删除 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta http-equiv&…

js中replace的用法

replace方法的语法是&#xff1a;stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string)&#xff0c;reExp可以是正则表达式对象(RegExp)也可以是字符串(string)&#xff0c;replaceText是替代查找到的字符串。。为了帮助大家更好的理解&#xff0c;下面举个简…