[TOC]
## 1. offset
```
offsetParent //獲取給了定位元素的父級
offsetLeft //返回元素的相對定位父元素水平偏移位置。 返回number
offsetTop //返回元素的相對定位父元素水平垂直偏移位置。
offsetWidth //返回元素的寬度 -- 包含width,padding,border
offsetHeight //返回元素的高度
```
```
<script>
var child = document.getElementById("child");
var parent = child.offsetParent;
var left = child.offsetLeft;
var offsetTop = child.offsetTop;
var offsetWidth = child.offsetWidth;
console.log(parent)
console.log(left);
console.log(offsetTop);
console.log(offsetWidth)
</script>
*****
//獲取頂部的高度
// $(element).offset().top
/* $(function(){
var top = $("#child").offset().top;
console.log(top);
})
*/
/* $(()=>{
var top = $("#child").offset().top;
console.log(top);
})
*/
window.onload = function() {
function getTop(element){
var realTop = element.offsetTop;
var parent = element.offsetParent;
while (parent !== null){
realTop += parent.offsetTop;
parent = parent.offsetParent;
}
return realTop;
}
var child = document.getElementById("child");
var top = getTop(child);
console.log(top);
}
```
### 1.1 用法 獲取寬度或高度
> 用offsetWidth獲取子元素的寬度,
```
<style>
#parent>div{
width: 200px;
height: 100px;
border: 1px solid #333;
float: left;
}
#parent{
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
</style>
*****
<div id="parent">
<div id="child"></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
// offsetWidth
var parent = document.getElementById("parent");
var childWidth = document.getElementById("child").offsetWidth;
parent.style.width = childWidth*4 + "px";
</script>
```
## 2.可視區域
> scrollWodth scrollHeight
> 布局視口的寬度 var ww = window.innerWidth;
> 設備視口的寬度 var dw = document.documentElement.clientWidth;
```
<script>
//可視區域的width
var ww = window.innerWidth;
var dw = document.documentElement.clientWidth;
console.log(ww);
console.log(dw);
</script>
```
## 3. getPropertyValue/removeProperty
```
<p id="test" style="border: 1px solid #333;color: red;">hello world</p>
<script>
window.onload = function(){
// debugger;
var test = document.getElementById("test");
test.onclick = function(){
// var length = this.style.length;
// var color = this.style.getPropertyValue("color")
// alert(this.style.item(0)); console.log(this.style);
// this.style.removeProperty("color");
this.style.setProperty("color","yellow");
console.log(color);
}
}
</script>
```
- 效果實例
- 1.點擊增加高度
- 2.tab頁面切換
- 3. 列表切換
- 4. 隔行變色
- 5. swiper 輪播
- 6.vue
- 7.定時器
- 8. 向表格中添加數據
- 9 瀑布流
- 1.JavaScript基礎
- 1. 變量
- 2. 調試
- 3.數據類型
- 4.轉換
- 5.控制語句
- 6.運算
- 7. this
- 8 JSON對象和javascript對象的相互轉換
- 2.JavaScript的控制語句
- 1. 基本控制語句
- 2.節點
- 2.1DOM補充
- 3. 函數
- js的模塊化如何解決
- 不知道有什么用的
- 4.數組
- 5. String
- 補充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封裝
- Ajax效果
- ajax補充
- 7. 正則
- 1.創建正則表達式
- 2. 正則的api
- 3.正則語法
- 4.例子
- 量詞
- 8.面向對象
- 1.原型
- ES6
- 模塊化
- 1.回調地獄
- 什么是回調地獄
- 簡單封裝
- promise解決回調地獄
- generator解決回調地獄
- async解決回調地獄
- 2.封裝
- Ajax,promise
- JavaScript難點
- 1. 閉包/作用域
- 2.原型鏈
- 3. 兼容性
- 適配
- JavaScript小效果
- 字符串截取