一、 DOM
- DOM基础
- DOM: document object model 操作页面标签和css
- 实际上是BOM的一部分
- DOM基本操作
console.log(document);
console.log(document.documentElement);
console.log(document.body);
console.log(document.head);
console.log(document.title);
document.title = "改了"
二、页面的几种宽高
- clientWidth / clientHeight 浏览器的可视宽高
console.log(document.documentElement.clientWidth);
console.log(document.documentElement.clientHeight);
- scrollWidth / scrollHeight 浏览器的实际宽高
console.log(document.documentElement.scrollWidth);
console.log(document.documentElement.scrollHeight)
- scrollTop / scrollLeft 浏览器页面被卷去的宽高
console.log(document.documentElement.scrollTop);
console.log(document.documentElement.scrollLeft)
- 返回顶部代码实现
<script>
var oDivs = document.getElementsByClassName("a");
console.log(oDivs)
oDivs[0].onclick = function(){
var t = setInterval(function(){
document.documentElement.scrollTop--;
if(document.documentElement.scrollTop == 0){
clearInterval(t)
}
},10)
}
</script>
- 判断达到底部
<body>
<p id="p">已经见底了,耶斯莫拉</p>
<script>
var oP = document.getElementById("p");
var maxHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight - 10;
var t;
window.onscroll = function(){
clearTimeout(t)
t = setTimeout(function(){
console.log(maxHeight);
if(document.documentElement.scrollTop >= maxHeight){
console.log("已经见底了")
oP.style.display = "block"
}
},300)
}
</script>
</body>
三、获取的元素方式
- document.getElementById() 获取一个元素
- document.getElementsByClassName() class是关键字 className 获取一个元素集合
- document.getElementsByName() 通过name属性来获取元素(一般只有表单才有name属性) 也是获取一个数组
- document.getElementsByTagName() 通过标签名获取元素集合
- ES6新增的方法:查询选择器
- document.querySelectorAll() 获取所有的元素集合
- document.querySelector() 获取第一个
四、标签的内容操作
- value 输入框的内容
- innerHTML 标签的内容 识别标签
- innerText 标签的内容 不识别标签 --- 把标签当做了内容的一部分
五、标签的属性
-获取标签的属性
- 获取所有的属性 attributes
- attribute 属性:包括自有属性和自定义属性
console.log(oDiv.attributes);
console.log(oDiv.attributes.id);
- 获取具体的属性 getAttribute("属性名")
console.log(oDiv.getAttribute("id"));
console.log(oDiv.getAttribute("calss"));
-添加或者替换属性 setAttribute("属性名" , "属性值")
oDiv.setAttribute("qq","q")
-删除指定的属性 removeAttribute("属性名")
oDiv.removeAttribute("aa")
- 简写
- 自有属性可以直接使用
console.log(oDiv.id);
oDiv.id = "h"
console.log(oDiv.className);
- 自定义属性不能简写
console.log(oDiv.vv);
六、标签名的类型
- className 是一个字符串
- classList 是一个伪数组
- classList的方法
- .add()添加类名
- .remove()移除类名
- .replace()替换("替换前的类名","替换后的类名(不能为空值)")
七、标签的样式
- 操作样式
- 获取样式
- getComputedStyle(obj)["color"]
- 如果是行内样式 就可以直接获取 obj.style.color。非行内无法拿到
- 设置样式
- obj.style.color = "red"
var oDiv = document.querySelector(".a")
oDiv.style.color = "blue"
oDiv.style.fontSize = "20px"
- cssText 给标签添加多个样式,但是会覆盖之前的行内样式。比如:obj.style.cssText = "color:red;width:100px"--会覆盖之前的行内样式,不想覆盖就(+=)
oDiv.style.cssText = "width:600px;color:red"