龙空技术网

Js基础16:偏移量offset、滚动scroll、区c客户lient

罗城浪逸 293

前言:

眼前各位老铁们对“导航条滚动css代码”大致比较注意,姐妹们都想要剖析一些“导航条滚动css代码”的相关资讯。那么小编在网上网罗了一些对于“导航条滚动css代码””的相关资讯,希望我们能喜欢,姐妹们一起来学习一下吧!

1、偏移量offset

offset是偏移、位移、补偿的意思(取整数值四舍五入),表示元素的偏移量。

offsetHeight和offsetWidth元素盒子模型的宽高(width/height + padding+border)offsetLeft和offsetTop1、表示当前元素距离它最近的相对父级(定位元素)的水平或者垂直距离。2、如果它一直没有相对父级元素,默认指向bodyoffsetParent和parentNodeoffsetParent 指的是最近的一个相对父级元素(默认指向body)parentNode 就是直接父级(标签结构中的父子关系 )

html和css代码

 <!DOCTYPE html> <html lang="en">  <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>        * {             margin: 0;             padding: 0;             border: 0;             list-style: none;        }          div {             width: 300px;             height: 300px;             border: 1px solid #000;             margin: 100px;             position: relative;        }          span {             width: 100px;             height: 100px;             border: 1px solid #000;             position: absolute;             left: 120px;             top: 30px;        }     </style> </head>  <body>     <div>         <span></span>     </div> </body>  </html>

JavaScript代码

 var oBox = document.getElementsByTagName('div')[0]; console.log(oBox.offsetLeft); // 到文档左侧的距离 console.log(oBox.offsetTop); // 到文档顶部的距离 console.log(oBox.offsetWidth); // 获取盒子的实际占位宽度(border+contentWidth+padding) console.log(oBox.offsetHeight); // 获取盒子的实际占位高度(border+contentHeight+padding) console.log("-------------------------------------"); var spanTag = document.getElementsByTagName('span')[0]; console.log(spanTag.offsetLeft); // 到父盒子左侧的距离(前提是父盒子有定位,没定位则直接索引到body) console.log(spanTag.offsetTop); // 到父盒子顶部的距离(前提是父盒子有定位,没定位则直接索引到body) console.log(spanTag.offsetWidth); // 获取span的实际占位宽度(border+contentWidth+padding) console.log(spanTag.offsetHeight); // 获取span的实际占位高度(border+contentHeight+padding) console.log(spanTag.offsetParent); // 相对父级元素(默认指向body)

2、滚动scroll

scroll是长卷纸,卷轴的意思,表示浏览器滚动时元素的卷曲值。

scrollHeight和scrollWidth代表获容器内部可滚动的宽度和高度(width/height + padding)包括由于溢出而无法展示在网页的不可见部分scrollTop和scrollLeft相对父盒子,元素 向上/向左 卷曲出去(滚出去)的距离

html和css代码

 <!DOCTYPE html> <html lang="en">  <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>        * {             margin: 0;        }          #box {             width: 200px;             height: 200px;             overflow: auto;        }          #content {             width: 300px;             height: 300px;             background: #ccf;             border: 1px solid #000;             padding: 2px;        }     </style> </head>  <body>     <div id="box">         <div id="content">             <p> 客户:“这个图下班之前必须发给我!” 设计师:“好的!”                第二天清早。客户:“图怎么还没发过来?” 设计师:“我还没下班呢…”。                客户:“这个图下班之前必须发给我!” 设计师:“好的!”                第三天清早。客户:“图怎么还没发过来?” 设计师:“我还没下班呢…”</p>         </div>     </div>     <button id="btn">按钮</button> </body>  </html>

JavaScript代码

 var oBox = document.getElementById('box'); var oContent = document.getElementById('content'); var oBtn = document.getElementById("btn") console.log(oContent.scrollWidth); // 内容盒子的可滚动宽度 console.log(oContent.scrollHeight); // 内容盒子的可滚动高度  console.log(oBox.scrollWidth); // 限定了宽高的父盒子中,其内容盒子可滚动的宽度 console.log(oBox.scrollHeight); // 限定了宽高的父盒子中,其内容盒子可滚动的高度  oBtn.onclick = function () {     console.log("-------------------------");     console.log(oBox.scrollTop); // 获取内容盒子相对于父盒子已经滚动了多少高度     console.log(oBox.scrollLeft); // 获取内容盒子相对于父盒子已经滚动了多少宽度 }

3、客户区client

client获取的是元素的可视区域

clientWidth和clientHeight不包含border在内的实际宽度(width/height + padding)clientLeft和clientTop打印出盒子 左侧边框/顶部边框 的厚度几乎不用

案例:吸顶导航

html和css代码

 <!DOCTYPE html> <html lang="en">  <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>吸顶导航</title>     <style>        * {             margin: 0;             padding: 0;        }          div {             width: 100%;             height: 100px;             line-height: 100px;             text-align: center;             background: skyblue;        }     </style> </head>  <body>     <section>         <p>段落</p>        ...         <p>段落</p>         <div id="box">吸顶导航</div>         <p>段落</p>        ...         <p>段落</p>     </section> </body>  </html>

JavaScript代码

 // 获取盒子的Y坐标 var boxTop = box.offsetTop; console.log(boxTop); // scroll 滚动事件 window.onscroll = function () {     // 获取文档滚出的距离     var winTop = document.documentElement.scrollTop;     console.log(winTop);     // 每当滚动的时候都需要获取超出窗口的范围 然后和盒子Y坐标做对比     // 如果滚动距离大于等于盒子Y坐标,就设置成固定定位,否则去掉盒子定位     if (winTop >= boxTop) {         box.style.position = "fixed";         box.style.top = 0;    } else {         box.style.position = "static";    } }

标签: #导航条滚动css代码