offset
- offset 翻译就是 偏移量 我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)大小等
- 常用属性
代码展示
// CSS
.father{
width: 200px;
height: 200px;
margin: 200px;;
background-color: skyblue;
}
.son{
width: 100px;
height: 100px;
background-color: tomato;
margin-left: 50px;
}
.w{
width: 100px;
height: 100px;
background-color: yellowgreen;
margin-left: 200px;
padding:10px;
border: 5px solid skyblue;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
<div class="w"></div>
<script>
var father = document.querySelector('.father')
var son = document.querySelector('.son')
var w = document.querySelector('.w')
// offsetTop 可以得到元素的偏移 位置 返回的是不带单位的数值
console.log(father.offsetTop); // 200
// 它以带有定位的父级为准 如果没有父级或父级没有定位则返回的是以 body为准
// 要先清楚内外边距 否则会把边距也计算在内
console.log(son.offsetLeft); // 返回的是 250 、如果没有清除边距则返回的 是 258
// 可以得到元素的大小 宽度和高度 包含 padding + border + width
console.log(w.offsetWidth);
console.log(w.offsetHeight);
// 返回带有定位的父级 否则返回body
console.log(son.offsetParent); // 父级无定位 返回 body
console.log(son.parentNode); // 返回 父级 最近一级的父级 不管有没有定位
</script>
</body>
元素可视区 client
client 翻译为 客户端 我们使用client系列的相关属性 获取元素可视区的相关信息 通过client的相关属性可以动态的得到该元素的边框大小等
立即执行函数(function(){})()
立即执行函数(function(){})()
主要作用:创建一个独立的作用域里面所有的变量都是局部变量 不会有命名冲突的情况
<script>
// 函数不调用 自己不执行 这个写法必须要调用
function fn(){
console.log(1);
}
fn();
// 1.立即执行函数 并不需要调用 可以直接输出 也可以传递参数
(function() { // 形参
console.log(1);
})() ; //实参
(function(a ,b) { // 形参
console.log(a+b);
})(1,2); //实参
// 另一种立即执行写法(function(){} ())
(function(){
console.log(4);
var nam = 10
}());
(function nan(b,c){ //可以起一个名字 不会报错
console.log(b+c);
var nam=10
}(2,3))
</script>
scroll
scroll 翻译 为 滚动 使用scroll系列的相关属性可以动态的得到该元素的大小 滚动距离等
三大系列对比
他们主要用法
- offset经常用于获得元素位置 offset Left、offsetTop
- client 经常用于获取元素大小 client Width、clientHeight
- scroll 经常用于获取滚动距离 scrollTop serollLeft
注意:页面滚动的距离通过 window.pageXOffset 获得
mouse enter和mouse over的区别
mouse enter 鼠标事件
- 当鼠标移动到元素上就会触发mouse enter事件
- 类似mouseover 区别是
- mouse over鼠标经过自身盒子会触发 经过子盒子还会触发 mouse enter只会经过自身盒子才会触发
- 原因是h mouse enter不会冒泡
- 跟mouseenter搭配 鼠标离开mouseleave 同样不会冒泡