基础知识:
1.获取单个元素:
根据class获取元素:
var a = document.querySelector('.div1');
根据id获取元素:
var a = document.querySelector('#div1');
根据标签获取元素:
var a = document.querySelector('li');
2.获取数组元素:
var lis = document.querySelectorAll('.div1 ul li');
元素事件绑定:
div1.addEventListener('事件类型',function(){
})
3.创建节点与插入节点:
指定标签创建节点:a=document.createElement('li'),创建一个结点只能添加一次
添加节点:ul.appendChild(a)将一个结点添加到指定父节点的子节点末尾
添加节点2:ul.insertBefore(a,ul.children[0]):将一个结点添加到父节点下的一个子节点的前一个
4.定时器:
setInterval():每隔一段这个时间,就去调用一次回调函数(例:倒计时效果)
clearInterval(定时器名)可以删除setInterval()设置的定时器
5.本地储存
本地存储(sessionStorage关闭浏览器删除数据,localStorage只能手动删除,其他页面也能使用存储在浏览器中的数据):
sessionStorage.setItem(key,value):把数据存储在用户浏览器中
sessionStorage.getItem(key):获取数据
sessionStorage.removeItem(key):删除数据
sessionStorage.clear():删除所有数据
localStorage.setItem(key,value):把数据存储在用户浏览器中
localStorage.getItem(key):获取数据
localStorage.removeItem(key):删除数据
localStorage.clear():删除所有数据
简单项目:
操作单个元素:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
.div1{
width: 100px;
height: 100px;
margin: auto;
background-color: red;
}
</style>
</head>
<body>
<div class="div1">
</div>
<button type="button" id="btn">点击</button>
<script type="text/javascript">
var div1 = document.querySelector('.div1');
var btn = document.querySelector('#btn');
btn.addEventListener('click',function(){
div1.style.width='200px';
div1.style.height='200px';
})
div1.addEventListener('click',function(){
div1.style.backgroundColor='black';
})
div1.addEventListener('mouseover',function(){
div1.style.backgroundColor='gray';
})
</script>
</body>
</html>
操作多个元素:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
.div1{
width: 800px;
height: 200px;
margin: auto;
}
li{
list-style: none;
text-align: center;
line-height: 200px;
font-size: 45px;
float: left;
width: 200px;
height: 200px;
background-color: black;
color: red;
cursor: pointer;
}
</style>
</head>
<body>
<div class="div1">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<script type="text/javascript">
var lis = document.querySelectorAll('.div1 li');
for(var i = 0;i<lis.length;i++){
lis[i].addEventListener('mouseover',function(){
for(var j = 0;j < lis.length;j++){
lis[j].style.backgroundColor='';
}
this.style.backgroundColor='red';
})
}
for(var i = 0;i<lis.length;i++){
lis[i].addEventListener('mouseout',function(){
for(var j = 0;j < lis.length;j++){
lis[j].style.backgroundColor='';
}
})
}
</script>
</body>
</html>
留言板
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>留言板</title>
<style type="text/css">
.div1{
width: 800px;
height: 200px;
margin: auto;
border: 1px solid red;
overflow: scroll;
}
.div2{
width: 400px;
height: 50px;
margin: auto;
}
</style>
</head>
<body>
<div class="div1">
<ul>
</ul>
</div>
<div class="div2">
<input type="text" id="ipt" placeholder="请输入内容"/>
<button type="button" id="btn">发布</button>
</div>
<script type="text/javascript">
//获取元素
var div1 = document.querySelector('.div1');
var div2 = document.querySelector('.div2');
var btn = document.querySelector('#btn');
var ipt = document.querySelector('#ipt');
var ul = document.querySelector('.div1 ul');
//用数组充当数据库保存已有的数据
var arr = ['123','456','678'];
//先渲染出数组当中的数据
for(var i=0;i<arr.length;i++){
var li = document.createElement('li');
li.innerHTML=arr[i];
ul.appendChild(li);
}
//给按钮添加点击事件
btn.addEventListener('click',function(){
console.log('----')
//重新获取元素
var ul = document.querySelector('.div1 ul');
//创建一个li元素
var li = document.createElement('li');
//给li元素添加内容
li.innerHTML=ipt.value;
//把li元素插入到ul当中
ul.appendChild(li);
//向数组当中添加元素
arr.push(ipt.value);
//内容盒子卷去的头部为它的高度,保持最新的数据在最下面
div1.scrollTop = div1.scrollHeight;
})
</script>
</body>
</html>
效果图:
tab栏切换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
background-color: black;
}
.div1{
width: 900px;
height: 50px;
margin: auto;
border: 1px solid red;
color: aqua;
}
.div2{
width: 900px;
height: 400px;
margin: auto;
border: 1px solid gray;
position: relative;
color: aquamarine;
}
.div1 li{
width: 33%;
height: 100%;
float: left;
list-style: none;
text-align: center;
line-height: 50px;
cursor: pointer;
}
.div1 li:hover{
background-color: red;
}
.div2 li{
position: absolute;
list-style: none;
display: none;
}
.div2 li:nth-child(1){
display: block;
}
</style>
</head>
<body>
<div class="div1">
<ul>
<li>一</li>
<li>二</li>
<li>三</li>
</ul>
</div>
<div class="div2">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<script type="text/javascript">
//获取元素
var li1s = document.querySelectorAll('.div1 li');
var li2s = document.querySelectorAll('.div2 li');
//给li一个自定义属性
for(var i = 0 ;i<li1s.length;i++){
li1s[i].id = i;
}
for(var i=0;i<li1s.length;i++){
li1s[i].addEventListener('click',function(){
for(var j=0;j<li2s.length;j++){
li2s[j].style.display='none';
}
li2s[this.id].style.display='block';
})
}
</script>
</body>
</html>
效果图:
轮播图: