系列属性(offset、scroll、client)
一、offset系列属性
<div id="dv"></div>
<!-- 已在style标签里设置div宽高各100px -->
<script>
//在style标签里面的样式属性无法获取,但是在style属性中设置的样式可以获取
console.log(document.getElementById("dv").style.width);//为空---无法获取 //所以引出了offset系列,总共有四个属性如下:
//1.可以通过offsetWidth获取元素的宽(带边框)
console.log(document.getElementById("dv").offsetWidth);//100 //2.可以通过offsetHeight获取元素的高(带边框)
console.log(document.getElementById("dv").offsetHeight);//100 //3.可以通过offsetLeft获取元素距离左边的值
//注意:
//没有脱离文档流,值=父级元素的margin和padding和border+自己的margin
//脱离文档流,值=自己的left+自己的margin
console.log(document.getElementById("dv").offsetLeft);//8---没有清除边距 //4.可以通过offsetLeft获取元素距离上边的值
console.log(document.getElementById("dv").offsetTop);//8---没有清除边距
//注意:
//没有脱离文档流,值=父级元素的margin和padding和border+自己的margin
//脱离文档流,值=自己的left+自己的margin
</script>
二、scroll系列属性
获取和封装
<div id="dv"></div>
<!-- 已在style标签里设置div宽高各100px -->
<script>
//scrollWidth:获取元素实际内容的宽(不带边框),如果元素里面没有内容,就是元素的宽
console.log(document.getElementById("dv").scrollWidth);//100
//scrollHeight:获取元素中内容的实际高度(不带边框),如果元素里面没有内容或者内容高度没有超过元素的高就是元素的高,超过以后就是内容的高度
console.log(document.getElementById("dv").scrollHeight);//100
//scrollTop:获取向上卷曲的距离-----当出现滚动条时
console.log(document.getElementById("dv").scrollTop);//0
//scrollLeft:获取向上卷曲的距离------当出现滚动条时
console.log(document.getElementById("dv").scrollLeft);//0
</script>
<script>
//封装函数:实时获取向左卷曲的距离和向上卷曲的距离
function getScroll(){
return {
left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,
top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0
}
}
//浏览器的滚动事件-----需要设置高度出现滚动条,然后滚动鼠标才会触发
window.onscroll=function(){
console.log(getScroll().top);
}
</script>
案例:固定导航栏案例
<!-- 固定导航栏案例-->
<div id="nav">设置了宽度100%,高度50px,红色背景</div>
<div id="navbar">设置了宽度100%,高度10px,黄色背景</div>
<div id="main">设置了宽度100%,高度1000px,蓝色背景</div>
<script>
//效果预期:拖动滚动条,让黄色导航栏始终在屏幕的上面
//获取卷曲部分距离
function getScroll(){
return {
left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,
top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0
}
}
//注册滚动事件
window.onscroll=function(){
//如果卷曲部分距离大于等于红色部分的高度
if(getScroll().top>=document.getElementById("nav").offsetHeight){
//黄色部分应该设置固定定位在顶部
document.getElementById("navbar").style.position="fixed";
document.getElementById("navbar").style.left="0";
document.getElementById("navbar").style.top="0";
//蓝色部分的外边距应该=黄色部分额高度
document.getElementById("main").style.marginTop=document.getElementById("nav").offsetHeight+"px";
}else{//如果卷曲部分距离小于红色部分的高度,一切恢复
document.getElementById("navbar").style.position="";
document.getElementById("main").style.marginTop="";
}
}
</script>
三、client系列属性
<div id="dv">设置了宽高各500px,10px边框</div>
<script>
//clientWidth:获取可视区域的宽(没有边框)
console.log(document.getElementById("dv").clientWidth);//500
//clientHeight:获取可视区域的高(没有边框)
console.log(document.getElementById("dv").clientHeight);//500
//clientLeft:获取左边边框的宽度
console.log(document.getElementById("dv").clientLeft);//10
//clientTop:获取上边边框的宽度
console.log(document.getElementById("dv").clientTop);//10
</script>
系列属性(offset、scroll、client)的更多相关文章
- JavaScript 特效之四大家族(offset/scroll/client/event)
三大系列:offset.scroll.client 事件对象:event(事件被触动时,鼠标和键盘的状态)(通过属性控制) 三大系列都是以DOM元素节点的属性形式存在的. 类比访问关系,也是以 ...
- offset,scroll,client系列
offsetHeight: 元素高,height+border+paddingoffsetWidth: 元素宽,width+border+paddingoffsetTop: 距离offsetParen ...
- offset / scroll / client Left / Top
1.offsetHeight / Width (只读) offsetHeight:表示该元素在垂直方向占用的空间大小,包含元素的高度+上边框高度+下边框高度 offsetWidth:表示该元素在水平方 ...
- 三大家族,offset,scroll,client
1.client 1.1主要成员 1.clientWidth 获取网页可视区域宽度(两种用法) clientHeight 获取网页可视区域高度 (两张用法) 盒子调用: 指盒子本省 浏览器调用: ...
- JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动
一.计时器 setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复) setTimeout ( 函数/名称 , 毫秒数 ) 表示经过一定的毫秒后,只执行 ...
- offset、client、scroll开头的属性归纳总结
HTML元素有几个offset.client.scroll开头的属性,总是让人摸不着头脑.在书中看到记下来,分享给需要的小伙伴.主要是以下几个属性: 第一组:offsetWidth,offsetHei ...
- javascript中常用坐标属性offset、scroll、client
原文:javascript中常用坐标属性offset.scroll.client 今天在学习js的时候觉得这个问题比较容易搞混,所以自己画了一个简单的图,并且用js控制台里面输出测试了下,便于理解. ...
- DOM盒模型和位置 client offset scroll 和滚动的关系
DOM盒模型和位置 client offset scroll 和滚动的关系 概览 在dom里面有几个描述盒子位置信息的值, pading border margin width height clie ...
- js offset系列属性
offsetParent:返回该元素有定位的父级,如果父级都没有定位则返回body offsetTop:返回元素相对父级(带有定位的父级)上方的偏移 offsetLeft:返回元素相对父级(带有定位的 ...
随机推荐
- PAT(B) 1042 字符统计(Java)字符串 正则表达式 统计
题目链接:1042 字符统计 (20 point(s)) 题目描述 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 A ...
- golang 上传文件(包括 gin 实现)
golang web服务有时候需要提供上传文件的接口,以下就是具体示例.为了示例简单(吐槽下 golang 的错误处理), 忽略了所有的错误处理.本文会用两种方式(标准库和gin)详细讲解 golan ...
- 更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是等比例缩放
更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是等比例缩放 更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是 ...
- mysql 系统变量
show variables; ---------------------------------+-------------------------------------------------- ...
- 关于MQ的几件小事(三)如何保证消息不重复消费
1.幂等性 幂等(idempotent.idempotence)是一个数学与计算机学概念,常见于抽象代数中. 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同.幂等函数,或 ...
- mac os安装mtr
MTR是Linux平台上一款非常好用的网络诊断工具,集成了traceroute.ping.nslookup的功能,用于诊断网络状态非常有用 现使用的方法是下载pkg包手动安装 mtr的pkg下载地址 ...
- swift 有哪些学习资源
Swift有哪些优秀的学习资源呢? 首先要推荐的当然是官方的资料了. 这个地址里放的是苹果官方为开发者提供的Swfit学习资源:https://developer.apple.com/swift/re ...
- 手写DAO框架(五)-DAO层实现
-------前篇:手写DAO框架(四)-SQL执行--------- 前言 通过上一篇,可以通过传入sql和对应的参数,可以执行sql并返回结果.但是对于一个DAO框架来说,要尽量的面向对象编程,也 ...
- uni-app 入门之 nvue (weex) 爬坑记
前言 uni-app 是 DCloud 出品的新一代跨端框架,可以说是目前跨端数最多的框架之一了,目前支持发布到:App(Android/iOS).H5.小程序(微信小程序/支付宝小程序/百度小程序/ ...
- 用ajax和PHP实现简单的流程管理
首先要先有一个新建流程的页面xinjian.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...