当前位置: 首页 > news >正文

百度免费域名注册网站免费个人网站源码

百度免费域名注册网站,免费个人网站源码,南京网站定制公司,杭州网站建设哪个好《JavaScript高级程序设计》中讲述了通过JS如何控制页面中元素的大小,其中涉及到三对属性:偏移量,客户区大小,滚动大小。以前自己经常看到这三对属性,但是具体不是很清楚,容易混淆。所以想写篇文章记录一下…

《JavaScript高级程序设计》中讲述了通过JS如何控制页面中元素的大小,其中涉及到三对属性:偏移量,客户区大小,滚动大小。以前自己经常看到这三对属性,但是具体不是很清楚,容易混淆。所以想写篇文章记录一下自己的学习收获,让自己理解的更加深刻,同时也请各位前辈帮忙指正一下自己理解错误的地方。

首先元素在屏幕上的可见大小由元素的宽度,高度决定,包括所有内边距,滚动条和边框大小(不包括外边距)

1.偏移量

偏移量中包括如下四个属性:

1.offsetHeight:元素在垂直方向上占用的空间大小,以像素计,包括元素的高度,(可见的)水平滚动条的高度,上边框高度和下边框高度

2.offsetWidth:元素在水平方向上占用的空间大小,以像素计,包括元素的宽度,(可见的)垂直滚动条的宽度,左边框宽度和右边框宽度

3.offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离

4.offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离

下图形象的展示了上述四个属性表示的大小和距离

 注意点:偏移量属性都是只读的,而且每次访问都需要重新计算,所以尽量避免重复访问这些属性,如果需要重复访问,可以将某个属性保存在局部变量中,以提高性能

 

2.客户区大小

客户区大小指的是元素内容和其内边距占据的空间大小。有关客户区大小的属性有如下两个:

1.clientWidth:元素内容区宽度加上左右内边距宽度

2.clientHeight:元素内容区高度加上上下内边距高度

下图展示了上述的属性:

注意点:1.clientWidth(clientHeight)与offsetWidth(offsetHeight)的区别是不包括边框和滚动条

    2.客户区大小与偏移量一样也是只读的,每次访问也需要重新计算

 

3.滚动大小

1.scrollHeight:在没有滚动条的情况下,元素内容的总高度

2.scrollWidth:在没有滚动条的情况下,元素内容的总宽度

3.scrollLeft:被隐藏在内容区域左侧的像素数,通过设置这个属性可以改变元素的滚动位置

4.scrollTop:被隐藏在内容区上方的像素数,通过设置这个属性可以改变元素的滚动位置

下图展示了这些属性:

 

注意点:1.通常认为<html>元素是在Web浏览器的视口中滚动的元素(IE6之前版本运行在混杂模式下是<body>元素),所以带有垂直滚动条的页面总高度是document.documentElement.scrollHeight。

2.偏移量,客户区大小和滚动大小返回的值只是一个数值,不带有单位,与style属性的width/height属性不同。

3.在确定文档的总高度时(包括基于视口的最小高度时),必须取得scrollWidth/clientWidth和scrollHeight/clientHeight中的最大值,才能保证在跨浏览器的环境下得到精确的结果

 在本节中涉及到的一些代码片段

1.获取某个元素相对于页面根元素的偏移量

//获取元素的左偏移量
function getElementLeft(element) {var actualLeft=element.offsetLeft;var current=element.offsetParent;while(current!==null){actualLeft+=current.offsetLeft;current=current.offsetParent;}return actualLeft;}

  

        //获取元素的上偏移量function getElementLeft(element) {var actualTop=element.offsetTop;var current=element.offsetParent;while(current!==null){actualLeft+=current.offsetTop;current=current.offsetParent;}return actualTop;}        

 

2.获取浏览器视口大小

//获取浏览器视口大小function getViewport(){if (document.compatMode=="BackCompat") {return {width:document.body.clientWidth,height:document.body.clienrHeight};}else{return{width:document.documentElement.clientWidth,height:document.documentElement.clienrHeight};}}

  

3.取得scrollWidth/clientWidth和scrollHeight/clientHeight中的最大值

//取得scrollWidth/clientWidth和scrollHeight/clientHeight中的最大值
var docHeight=Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight);
var docWidth=Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth);

  

4.重置元素的滚动位置

     //重置元素的滚动位置function scrollToTop(element){if (element.scrollTop!=0) {element.scrollTop=0;}}

  

 

转载于:https://www.cnblogs.com/huangxinixn/p/6832904.html

http://www.lbrq.cn/news/2572057.html

相关文章:

  • 北京网站怎么建设东莞网站推广排名
  • 山东 网站建设seo关键词工具
  • 网站建设创新点seo新方法
  • 常用的html编辑器有哪些重庆网站排名优化教程
  • 做网站 服务器如何写好软文
  • 一个主机可以做几个网站广州百度网站排名优化
  • 营销型网站建设设定包括哪些方面网站的优化从哪里进行
  • 广告联盟做网站今日热点新闻头条排行榜
  • 有没有做网站兼职在线生成网站
  • 算卦网站哪里可以做模板建站网页
  • 重庆网站设计公司域名信息查询网站
  • 高职图书馆网站建设大赛企业培训方案
  • java可以做网站吗商丘搜索引擎优化
  • 九江 网站建设小说关键词生成器
  • 短链短网址在线生成工具惠州seo推广外包
  • 营销网站中最重要的部分是重庆seo网站排名
  • 网站建设思路百度一下百度搜索网站
  • dw网站模板免费百度搜索热度指数
  • 国外jquery网站电工培训课程
  • 网站demo要几个人做推广公司有哪些
  • 网站制作建设需求友情链接网站源码
  • 西宁做腋臭哪里北大DE网站关键词权重查询
  • 抚顺 网站建设网络推广渠道和方法
  • 用自己电脑做服务器 网站吗推广网站排名
  • 工程做网站提高seo排名
  • 贵州二建报名入口官网上海seo培训
  • wordpress错误集锦搜索引擎优化到底是优化什么
  • wordpress多合一seo包公司seo是指什么意思
  • 找做企业网站精准营销方式有哪些
  • 网站建设详细的步骤有哪些整合营销的特点有哪些
  • 【python实用小脚本-169】『Python』所见即所得 Markdown 编辑器:写完即出网页预览——告别“写完→保存→刷新”三连
  • 决策树学习全解析:从理论到实战
  • 二叉树算法之【前序遍历】
  • 嵌入式第十八课!!数据结构篇入门及单向链表
  • 海洋大地测量基准与水下导航系列之九我国海洋PNT最新技术进展(下)
  • react 和 react native 的开发过程区别