JavaScript-client、offset、scroll、定时器

  • client

  • offset

  • scroll

client、offset、scroll系列

他们的作用主要与计算盒模型,盒子的偏移量和滚动有关

clientTop 内容区域到边框顶部的距离, 说白了, 就是边框的高度
clientLeft 内容区域到边框左部的距离, 说白了, 就是边框的宽度
clientWidth 内容区域+左右padding        可视宽度
clientHeight 内容区域+上下padding       可视高度

client演示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">*{padding: 0;margin: 0;}.box{width: 200px;height: 200px;position: absolute;border: 10px solid red;padding: 80px;}</style>
</head>
<body><div class="box" id="box">专业丰富的课程体系,博学多闻的实力讲师以及风趣生动的课堂,在路飞,不是灌输知识,而是点燃你的学习火焰。专业丰富的课程体系,博学多闻的实力讲师以及风趣生动的课堂,在路飞,不是灌输知识,而是点燃你的学习火焰。专业丰富的课程体系,博学多闻的实力讲师以及风趣生动的课堂,在路飞,不是灌输知识,而是点燃你的学习火焰。专业丰富的课程体系,博学多闻的实力讲师以及风趣生动的课堂,在路飞,不是灌输知识,而是点燃你的学习火焰。</div></body>
<script type="text/javascript">var oBox = document.getElementById("box");console.log(oBox.clientTop);console.log(oBox.clientLeft);console.log(oBox.clientWidth);console.log(oBox.clientHeight);
</script>
</html>
View Code

屏幕的可视区域

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body></body><script type="text/javascript">// 屏幕的可视区域window.onload = function(){// document.documentElement 获取的是html标签
            console.log(document.documentElement.clientWidth);console.log(document.documentElement.clientHeight);// 窗口大小发生变化时,会调用此方法window.onresize = function(){    console.log(document.documentElement.clientWidth);console.log(document.documentElement.clientHeight);}         }</script>
</html>
View Code

offset演示

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">*{padding: 0;margin: 0;}</style></head><body style="height: 2000px"><div><div class="wrap" style=" width: 300px;height: 300px;background-color: green"><div id="box" style="width: 200px;height: 200px;border: 5px solid red;position: absolute;top:50px;left: 30px;">            </div></div></div></body><script type="text/javascript">window.onload = function(){var box = document.getElementById('box')/*offsetWidth占位宽  内容+padding+borderoffsetHeight占位高 offsetTop: 如果盒子没有设置定位 到body的顶部的距离,如果盒子设置定位,那么是以父辈为基准的top值offsetLeft: 如果盒子没有设置定位 到body的左部的距离,如果盒子设置定位,那么是以父辈为基准的left值* */console.log(box.offsetTop)console.log(box.offsetLeft)console.log(box.offsetWidth)console.log(box.offsetHeight)}</script>
</html>
View Code

scroll演示

实施监听滚动事件

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">*{padding: 0;margin: 0;}</style></head><body style="width: 2000px;height: 2000px;"><div style="height: 200px;background-color: red;"></div><div style="height: 200px;background-color: green;"></div><div style="height: 200px;background-color: yellow;"></div><div style="height: 200px;background-color: blue;"></div><div style="height: 200px;background-color: gray;"></div><div id = 'scroll' style="width: 200px;height: 200px;border: 1px solid red;overflow: auto;padding: 10px;margin: 5px 0px 0px 0px;"><p>学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界学习新技能,达成人生目标,开始用自己的力量影响世界</p></div></body><script type="text/javascript">window.onload = function(){//实施监听滚动事件window.onscroll = function(){
//                console.log(1111)
//                console.log('上'+document.documentElement.scrollTop)
//                console.log('左'+document.documentElement.scrollLeft)
//                console.log('宽'+document.documentElement.scrollWidth)
//                console.log('高'+document.documentElement.scrollHeight)
}var s = document.getElementById('scroll');s.onscroll = function(){
//            scrollHeight : 内容的高度+padding  不包含边框console.log(''+s.scrollTop)console.log(''+s.scrollLeft)console.log(''+s.scrollWidth)console.log(''+s.scrollHeight)}}</script>
</html>
View Code

 

定时器

  • setTimeout()

  • setInterval()

在js中有两种定时器:

  • 一次性定时器:setTimeout()
  • 周期性循环定时器:setInterval()

setTimeout()

只在指定的时间后执行一次

/定时器 异步运行  
function hello(){  
alert("hello");  
}  
//使用方法名字执行方法  
var t1 = window.setTimeout(hello,1000);  
var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法  
window.clearTimeout(t1);//去掉定时器

setInterval()

在指定时间为周期循环执行

/实时刷新  时间单位为毫秒  
setInterval('refreshQuery()',8000);   
/* 刷新查询 */  
function refreshQuery(){  console.log('每8秒调一次') 
}

对于这两个方法,需要注意的是如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval,而如果不想由于连续调用产生互相干扰的问题,尤其是每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout

转载于:https://www.cnblogs.com/Xuuuuuu/p/10510461.html

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

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

相关文章

Java 五大原则

1、单一职责 不论是在设计类&#xff0c;接口还是方法&#xff0c;单一职责都会处处体现&#xff0c;单一职责的定义&#xff1a;我们把职责定义为系统变化的原因。所有在定义类&#xff0c;接口&#xff0c;方法的时候。定义完以后再去想一想是不能多于一个的动机去改变这个类…

马化腾发飙:很多业务该砍就砍,一批员工要被裁了

最近腾讯内部会议&#xff0c;马化腾内部讲话&#xff0c;频频上了热搜。在会议中&#xff0c;马化腾难得发飙表示&#xff1a;很多不盈利的业务该砍就砍。从网络新闻报道来看&#xff0c;可能超过40个业务即将关掉&#xff0c;甚至包括幻核、QQ影音、看点快报、搜狗地图、腾讯…

在ASP.Net和IIS中删除不必要的HTTP响应头

引入 每次当浏览器向Web服务器发起一个请求的时&#xff0c;都会伴随着一些HTTP头的发送.而这些HTTP头是用于给Web服务器提供一些额外信息以便于处理请求。比如说吧。如果浏览器支持压缩功能&#xff0c;则浏览器会发送Accept-Encoding HTTP头&#xff0c;这样一来服务器便知道…

SAP Customer Data Cloud(Gigya)的用户搜索实现

我在Gigya前台根据email搜索&#xff0c;输入一个邮箱地址&#xff0c;回车&#xff0c;在Chrome开发者工具里观察到到后台的网络请求&#xff1a; 这是一个post请求&#xff1a; __RequestVerificationToken 请求体&#xff1a; {"query":"SELECT * FROM accou…

C# ComboBox枚举量绑定的 两种方法

概述ComboBox绑定枚举量的方法有很多&#xff0c;今天列举比较常用的两种&#xff0c;希望对读者们一些帮助&#xff01;代码讲解前台XMAL:<StackPanel><ComboBox Name"EvenType1" SelectedIndex"0" Margin"5"/><ComboBox Name&…

springboot + mybatis + gradle项目构建过程

1.从Spring boot官网根据需求下载脚手架或者到GitHub上去搜索对应的脚手架项目,D_iao ^0^ • 文件目录如下&#xff08;此处generatorConfig.xml 和 log4j2.xml文件请忽略&#xff0c;后续会讲解&#xff09; 2.使用Mybatis代码自动构建插件生成代码 • gradle 相关配置 // My…

基于间隔推送全量更新数据状态的设计方法

2019独角兽企业重金招聘Python工程师标准>>> 假如有个直播间&#xff0c;在数据有更新的时候&#xff0c;能及时反映在客户端上。通信方式来说&#xff0c;有两种&#xff1a; 1、拉取模式。 2、推送拉取模式&#xff08;或者纯推送&#xff09; 拉取模式&#xff0…

Redis 哈希(Hash)

哈希hash又称为散列、杂凑等&#xff0c;是将任意长度的输入通过散列算法变换为固定长度的输出&#xff0c;最终输出也就是哈希值。这种转换是一种压缩映射。也就是说&#xff0c;散列值的空间通常要远小于输入控件&#xff0c;不同的输入可能会散列成相同的输出&#xff0c;所…

京东Vue组件库NutUI 2.0发布:将支持跨平台!

NutUI 是一套来自京东用户体验设计部&#xff08;JDC&#xff09;前端开发部的移动端 Vue 组件库&#xff0c;NutUI 1.0 版本于 2018 年发布。据不完全统计&#xff0c;目前在京东至少有30多个 web 项目正在使用 NutUI。 经过一段时间紧锣密鼓的开发&#xff0c;近期&#xff0…

macbook 下载时睡眠_MacBook进入睡眠状态时如何自动使其静音

macbook 下载时睡眠You open your MacBook to take notes in class or during a meeting, and your music starts playing. Loudly. Not only did you disrupt everyone, you also revealed your passion for 90’s boy bands to a room full of people who once respected you…

Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题

数据库版本是5.7.19&#xff0c;在写语句的时候&#xff0c;只要涉及ORDER BY,就会报错&#xff0c; ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column postscan.verifyDelayLog.auditor which is not function…

Spring MVC 入门(一)

什么是 Spring MVC 学习某一样东西之前&#xff0c;我们一定要大致知道这个东西是什么&#xff0c;能干什么&#xff0c;为什么要用它。 Spring MVC 是一个开源平台&#xff0c;一个基于 Spring 的 MVC 框架&#xff0c;它支持基于 Java 开发 Web 应用程序。MVC 架构很利于开发…

开源网关 Apache APISIX 认证鉴权精细化实战讲解

关注公众号并添加到“星标⭐”&#xff0c;防止错过消息后台回复【资料包】获取学习资料GitOps 新手入门到专家进阶实战详细教程作者钱勇&#xff0c;API7.ai 开发工程师&#xff0c;Apache APISIX Committer在当下云原生越发成熟的环境下&#xff0c;API 网关最核心的功能可以…

python应用POP3、IMAP、SMTP 协议,获取邮箱验证码

&#xff30;&#xff2f;&#xff30;&#xff13;和&#xff29;&#xff2d;&#xff21;&#xff30;是邮件相关的协议&#xff0c;&#xff29;&#xff2d;&#xff21;&#xff30;是比&#xff30;&#xff2f;&#xff30;&#xff13;更高级一点的协议&#xff0c;实…

固件中启用的虚拟化否_哪些固件或硬件机制可启用强制关机?

固件中启用的虚拟化否At one time or another, all of us have had to force our computers to shut down by pushing and holding the power button down until they powered off. Is this mechanism hardware-based, firmware-based, or both? Today’s SuperUser Q&A p…

简述闭包

闭包 这是我对闭包的一点小理解.有问题请直接指出,在此先谢过! 闭包的含义 封闭隔离的空间,在javascript中,只有函数能够符合这种特性; 为什么要用闭包呢? 因为在引用外部js文件(如jquery,各种框架)时防止变量重名造成的问题,同时也使代码更具隐私性; 获取闭包中数据的方法: …

Confluence 6 配置服务器基础地址备注

使用不同 URL。如果你配置了不同的基础 URL 地址或者你站点的访问者使用了不同的 URL 地址来访问你的 Confluence 地址&#xff0c;你有很大概率可能会受到错误信息。修改上下文地址。如果你修改了基础 URL 地址的上下文地址&#xff0c;你同时也需要修改下面的配置&#xff1a…

2019第10周知识总结

react 事件绑定 函数写法 文档总结 https://react.docschina.org/docs/handling-events.html 1 通过 constroucor绑定 class Toggle extends React.Component {constructor(props) {super(props);this.state {isToggleOn: true};// This binding is necessary to make this wo…

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记...

▲ 点击上方“DotNet NB”关注公众号回复“1”获取开发者路线图学习分享 丨作者 / 郑 子 铭 这是DotNet NB 公众号的第202篇原创文章目录为什么我们用 OrleansDapr VS OrleansActor 模型Orleans 的核心概念结合 OP Storming 的实践结合 OP Storming 的实践业务模型设计模型代…

PHP 多维数组转json对象

PHP 多维数组转json对象 php 数组转json对象&#xff0c;可能大家都知道要用json_encode,但是转换出来的格式多有不同&#xff0c;此处做个小小的记录&#xff01; 1. 一维数组转json对象 <?php $arr_1 [one, two, three]; var_dump(json_encode($arr_1)); $arr_2 [0 >…