01-各种弹框的使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button onclick="alert('删除成功!')">弹框1</button>
		<br><br>
		<span id="s1">要删除的数据</span>
		<button onclick="confirmAction()">删除</button>
		
		<br><br>
		<button onclick="promptAction()">添加</button>
		
	</body>
</html>

<script>
	// 1.alter  -  有一段文字和确定的按钮的弹框
	// 2.confirm  - 有一段文字提示信息、确定按钮和取消按钮的弹框(如果用户点击的是取消按钮,返回值是false;如果用户点击的是确定按钮,返回值是true)
	function confirmAction(){
		var result = confirm('是否真的要删除这个数据?')
		// console.log(result)
		if(result==true){
			document.getElementById('s1').remove()
		}
	} 
	// 3.prompt  - 带有文字提示信息、确定按钮、取消按钮和输入框的弹框(如果点击取消按钮返回值是null,点击确定按钮返回值是输入框中的内容)
	function promptAction(){
		var result = prompt('请输入添加的学生的名字:', '小明')
		console.log(result)
		if(result != null && result.length != 0){
			var p = document.createElement('p')
			p.innerText = result
			var body = document.getElementsByTagName('body')[0]
			body.appendChild(p)
		}
	}
	
</script>

02-缩略图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			#box2>img{
				width: 60px;
				height: 60px;
			}
		</style>
	</head>
	<body>
		<!-- 方法1:直接在html中创建对应的固定的标签 -->
		<!-- <div>
			<img id="bigImage" src="img/picture-1.jpg" alt="">
		</div>
		<div>
			<img src="img/thumb-1.jpg" οnmοuseοver="document.getElementById('bigImage').src='img/picture-1.jpg'">
			<img src="img/thumb-2.jpg" οnmοuseοver="document.getElementById('bigImage').src='img/picture-2.jpg'">
			<img src="img/thumb-3.jpg" οnmοuseοver="document.getElementById('bigImage').src='img/picture-3.jpg'">
		</div> -->
		
		<!-- 方法2:用js代码创建对应的标签-->
		<div id="box1">
			<img id="bigImg" style="width:400px;height: 300px;">
		</div>
		<div id="box2"></div>
	</body>
</html>

<script>
	// ----------------方法2对应的js代码-------------
	// 1.准备数据
	var data = {
		'k1': ['https://img2.baidu.com/it/u=2336839758,781844272&fm=253&fmt=auto&app=138&f=JPEG?w=300&h=420', 'https://img2.baidu.com/it/u=2336839758,781844272&fm=253&fmt=auto&app=138&f=JPEG?w=300&h=420'],
		'k2': ['img/thumb-2.jpg', 'img/picture-2.jpg'],
		'k3': ['img/thumb-3.jpg', 'img/picture-3.jpg'],
		'k4': ['img/weixin.png', 'img/slide-1.jpg'],
		'k5': ['img/thumb-3.jpg', 'img/picture-3.jpg']
	}
	
	// 2.创建小图
	for(x in data){
		var sImg = document.createElement('img')
		sImg.src = data[x][0]
		sImg.key = x
		document.getElementById('box2').appendChild(sImg)
		
		if(x == 'k1'){
			document.getElementById('bigImg').src = data['k1'][1]
		}
		
		// 给每个小图绑定事件
		sImg.onmouseover = function(){
			document.getElementById('bigImg').src = data[this.key][1]
		}
	}
	
	// ['张三', 18, '15399923045', 57, 167, 78]
	
	// stu = {
	// 	'name': '张三',
	// 	'age': 18,
	// 	'tel': '15399923045',
	// 	'weight': 57,
	// 	'height': 167,
	// 	'score': 78
	// }
	
	// console.log(stu['tel'])
</script>

03-轮播图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			#box{
				width: 940px;
				height: 430px;
				margin-left: auto;
				margin-right: auto;
				
				position: relative;
			}
			
			#imgBox{
				width: 100%;
				height: 100%;
			}
			
			#pointBox{
				position: absolute;
				bottom: 20px;
				
				width: 100%;
				text-align: center;
			}
			
			#pointBox>span{
				color: rgb(220, 210, 210);
				margin-left: 5px;
				margin-right: 5px;
				
				/* 让鼠标变成手指 */
				cursor: pointer;
			}
			
		</style>
	</head>
	<body>
		<div id="box">
			<a href="" id="a1" target="_blank">
				<img id="imgBox" src="img/slide-1.jpg" alt="">
			</a>
			
			<div id="pointBox"></div>
		</div>
	</body>
</html>

<script>
	// 1.准备数据
	var imgUrls = [
		['img/slide-1.jpg', 'https://www.baidu.com'],
		['img/slide-2.jpg', 'https://www.taobao.com'],
		['img/slide-3.jpg', 'https://www.jd.com'],
		['img/slide-4.jpg', 'https://www.51job.com'],
		['https://img2.baidu.com/it/u=1246423168,2248525401&fm=253&fmt=auto&app=138&f=JPEG?w=969&h=500','https://www.baidu.com'],
		['https://img2.baidu.com/it/u=5239947,3885195473&fm=253&fmt=auto&app=138&f=JPEG?w=700&h=375', 'https://cn.vuejs.org/guide/introduction.html#what-is-vue']
		
	]
	currentIndex = 0	      //	当前显示的图片在列表中的下标
	var count = imgUrls.length
	
	// 2.根据数据创建标签显示数据
	// 显示第一张图片
	document.getElementById('imgBox').src = imgUrls[0][0]
	document.getElementById('a1').href = imgUrls[0][1]
	
	// 创建所有图片对应点
	for(x in imgUrls){
		var span = document.createElement('span')
		span.innerText = '●'
		span.index = parseInt(x)			// 让点和下标关联
		document.getElementById('pointBox').appendChild(span)
		
		if(x == 0){
			span.style.color = '#aaaaaa'
		}
		
		// 给每一个点对应的标签绑定鼠标悬停事件
		span.onmouseover = function(){
			// 关闭定时器
			clearInterval(t1)
			
			// 手动控制切换图片
			if(this.index != currentIndex){
				// 在切换之前获取currentIndex对应的点,修改状态为未选中状态
				var allPoint = document.getElementById('pointBox').children
				allPoint[currentIndex].style.color = 'rgb(220, 210, 210)'
				
				// 将当前选中的点设置为选中状态
				this.style.color = '#aaaaaa'
				
				// 获取当前点对应的下标,找到对应的图片
				currentIndex = this.index
				document.getElementById('imgBox').src = imgUrls[currentIndex][0]
				document.getElementById('a1').href = imgUrls[currentIndex][1]
			}
			
		}
		
		// 给每个点绑定鼠标离开事件
		span.onmouseout = function(){
			startMove()
		}
	}
	
	// 3.定时器自动切换图片
	function startMove(){
		t1 = setInterval(function(){
			// 在让下标加1之前获取下标对应的点,修改点的样式
			var allPoint = document.getElementById('pointBox').children
			allPoint[currentIndex].style.color = 'rgb(220, 210, 210)'
			
			// 控制下标变化,来获取下一张图片信息
			currentIndex += 1
			if(currentIndex == count){
				currentIndex = 0
			}
			// ‘abc’ + 1  ->  abc1
			// 根据新的下标获取新的数据
			console.log('=====:', currentIndex)
			document.getElementById('imgBox').src = imgUrls[currentIndex][0]
			document.getElementById('a1').href = imgUrls[currentIndex][1]
			
			// 修改点的状态
			allPoint[currentIndex].style.color = '#aaaaaa'
			
		},2000)
	}
	startMove()

	
</script>

04-按钮切换

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0;
				padding: 0;
			}
			#btn-box{
				margin-top: 15px;
				margin-left: 15px;
			}
			#btn-box>button{
				width: 150px;
				height: 70px;
				border: none;
				font-size: 25px;
			}
		</style>
	</head>
	<body>
		<div id="btn-box">
			<button style="color: red;">扫码登录</button>
			<button>账号登录</button>
			<button>QQ登录</button>
			<button>微信登录</button>
		</div>
		<div></div>
	</body>
</html>
<script>
	var allBtn = document.getElementById('btn-box').children
	currentindex = 0
	for (var index=0;index<allBtn.length;index++) {
		var btn = allBtn[index]
		btn.index = index
		
		btn.onclick = function(){
			// 将当前选中的标签变成红色
			this.style.color = 'red'
		
			// 将之前选中的标签拿到,设置颜色为黑色
			allBtn[currentindex].style.color = 'black'
			
			// 更新当前下标为当前选中的按钮对应的下标
			currentindex = this.index
		}
	}
</script>

05-下拉菜单

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<select name="" id="city">
			
		</select>
		
		<select name="" id="">
			
		</select>
	</body>
</html>
	
<script>
		// 1.准备数据
		var allCity = {
			'四川省': ['成都','德阳','乐山','达州','绵阳'],
			'广东省': ['广州','深圳','佛山','珠海','汕头','龙岗'],
			'陕西省': ['西安','咸阳','宝鸡','榆林','延安','铜川']
		}
		
		// 创建省份对应的选项
		
		for(var key in allCity){
			var p = document.createElement('option')
			p.innerText = key
			p.value =key
			
			document.getElementById('city').appendChild(p)
			
		}
		
</script>

06-城市下拉列表

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<select name="" id="province" onchange="changeProvince()"></select>
		
		<select name="" id="city"></select>
	</body>
</html>
<script>
	// 1. 准备数据
	var allCity = {
		'四川省': ['成都', '德阳', '泸州', '乐山', '达州', '绵阳'],
		'广东省': ['广州', '深圳', '佛山', '珠海', '汕头'],
		'辽宁省': ['沈阳', '大连', '盘锦', '铁岭']
	}
	
	// 创建省份对应的选项
	for(var key in allCity){
		var p = document.createElement('option')
		p.innerText = key
		p.value = key
		
		document.getElementById('province').appendChild(p)	
	}
	
	// 创建第一个省对应所有的市对应的选项
	var citys = allCity['四川省']
	for(var index in citys){
		var city = citys[index]
		
		var c = document.createElement('option')
		c.innerText = city
		c.value = city
		
		document.getElementById('city').appendChild(c)
	}
	
	// 下拉列表修改选中的省份
	function changeProvince(){
		var currentProvince = document.getElementById('province').value

		// 获取当前选中的省份对应的城市
		var currentCitys = allCity[currentProvince]
		
		// 先清空原来选中的省对应的城市
		var cityBox = document.getElementById('city')
		cityBox.innerText = ''
		
		// 将当前选中省对应的所有城市添加到第二个下拉列表中
		for(var index in currentCitys){
			var city = currentCitys[index]
			
			var c = document.createElement('option')
			c.innerText = city
			c.value = city
			
			cityBox.appendChild(c)
		}	
	}
	
	
</script>

07-jQuery

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<!-- 导入jQuery -->
		<script src="js/jquery.min.js"></script>
		
	</head>
	<body>
		<div id="box1">
			<p class="c1">我是段落1</p>
			<a>我是超链接1</a>
			<span class="c1">我是span1</span>
			<p id="p1">我是段落2</p>
			<p>我是段落3</p>
		</div>
		
		<div id="box2">
			<span>我是span2</span>
			<a class="c1">我是超链接2</a>
			
			<input type="text" name="username" id="">
			<input type="radio" name="gender">男
			<input type="radio" name="gender">女
			
		</div>
		
		
		<div id="box3">
			<button>点击1</button>
			<button>点击2</button>
			<button>点击3</button>
			<button>点击4</button>
			<button>点击5</button>
		</div>
		
		<button onclick="addAction()">添加</button>
		
	</body>
</html>

<script>
	// jQuery相比原生js,标签操作更简单
	result =  $('#p1')
	console.log(result)
	
	result = $('#box2>span')
	console.log(result)
	
	// jQuery代码
	a = $('<a href="https://www.baidu.com" style="color: red;">百度</a>')
	$('#box2').append(a)
	
	$('#box3').on('click', 'button', function(){
		alert('点击了'+this.innerText)
	})
	
	function addAction(){
		var result = prompt('添加一个新的按钮:', '点击N')
		if(result != null){
			$('#box3').append($(`<button>${result}</button>`))
		}
	}
	
	// js代码
	a = document.createElement('a')
	a.innerText = '百度'
	a.href = 'https://www.baidu.com'
	a.style.color = 'red'
	document.getElementById('box2').appendChild(a)
	
	
</script>

08-Vue的使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
	</head>
	<body>
		
		<div id="app1">
			<p>{{message}}</p>
		</div>
		
		<!-- Vue在控制网页内容的时候不需要获取标签。控制原理:让数据和标签绑定,绑定成功之后,修改数据就可以修改标签 -->
		<script>
			var app = new Vue({
				el:'#app1',
				data: {
					message: 'hello world!'
				}
				
			})
			
			app.message = '你好世界!'
		</script>
		
		
		
	</body>
	
	
</html>