9-11-12 h5总结~文档对象模型、点击事件

总结
1.点击事件
2.事件类型:onclick点击事件 onmouseover鼠标滑动 onmouseout 鼠标划出
onmousemove鼠标移动 onmouseup鼠标左边向上 onmousedown 鼠标左边向下
绑定事件:
三要素:绑定的事件,事件类型,事件处理函数
document object model:文档对象模型
DOM 树
节点类型:文本节点(text) 元素节点(标签里面的内容) 属性节点
获取元素(直接获取)
文档对象模型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>DOM(document object model:文档对象模型)</title>
		<style>
			*{
				padding: 0;
				margin: 0;
			}
			li{
				list-style: none;
			
			}
			#nav{
				width:1000px ;
				height: 50px;
				border: 1px solid red;
				margin: 0 auto;
				
			}
			#nav li{
				float: left;
				width: 80px;
				height: 50px;
				text-align: center;
				line-height: 50px;
			}
		.box{
			width:1000px;
			height:500px;
			margin:0 auto;
			border: 1px solid red;
			
		}	
		.box div{
			display: none;
		}
			
		</style>
		
	</head>
	
	<body>
		
		<ul id="nav">
			<li></li>
			<li>导航2</li>
			<li>导航3</li>
			<li>导航4</li>
			<li>导航5</li>
			
			
		</ul>
		<div class="box">
			<div>我关注的内容</div>
			<div style="display: block;">推荐的内容</div>
			<div>导航1</div>
			<div>导航2</div>
			<div>导航3</div>
			
			
		</div>
		<!--<button id="btn">练习绑定事件<botton>-->
	<script>
		
		//先获取到要操作的元素
		var lis = document.getElementById('nav').children;
		var divs = document.getElementsByClassName('box')[0].children;
		  console.dir(lis[0])
		for( var i=0;i<lis.length;i++){
			//给节点对象添加一个属性,赋值为下标
			 lis[i].index = i;
			 //分别给每一个li绑定点击事件
			 lis[i].onclick = function(){
			 	//隐藏3个div
			 	for (var i=0;i<lis.length;i++) {
			 		divs[i].style.display ='none';
			 	}
			 	//对应的div显示
			 	divs[this.index].style.display= "block";
			 	
			 	

//           console.log(this.innerHTML);// 打印
//               this.innerHTML= 'nav'+this.index;
		    }
			 lis[i].onmousemove = function(){
			 	this.style.background='red';
			 }
			 lis[i].onmouseout = function(){
			 	this.style.background='#fff';
			 }
		}
//    var btn = document.getElementById('btn');	
//		  btn.onclick = function(){
//		alert('hello world');
//          console.log('onclick');
//		}
//			btn.onmouseover = function(){
//          this.style.background='red';
//		}
//			
//			btn.onmouseout = function(){
//         this.style.background='#fff';
//		}
//			btn.onmousemove = function(){
//			console.log('onmousemove');
//		}
//		var ul=document.getElementById('nav');
//		console.log(nav);
//		var lis= document.getElementsByTagName('li');
//		console.log(lis[0]);
		
//     通过节点关系获取 
       //console.log(nav.childNodes);
//      console.log(nav.children); 
//		console.log(nav.parentNode);
//		console.log(nav.firstElementChild.nextElementSibling);
		
		</script>
	</body>
</html>

在这里插入图片描述
点击事件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>DOM</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        li{
            list-style: none;
        }
        .header{
            width: 1200px;
            height: 50px;
            margin: 0 auto;
            border: 1px solid #ccc;
        }
        .header button{
            float: left;
            width: 100px;
            height: 50px;
        }
        #nav{
            width: 1000px;
            height: 50px;
            float: left;
        }
        #nav li{
            width: 100px;
            height: 50px;
            text-align: center;
            line-height: 50px;
            float: left;
            cursor: pointer;
        }
        .box{
            width: 1200px;
            height: 500px;
            margin: 0 auto;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div class="header">
        <button id="prev"><</button>
        <ul id="nav">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <button id="next">></button>
    </div>
    <div id="box" class="box">
        <p></p>
        <p></p>
        <p></p>
    </div>

    <script src="data.js"></script>
    <script>
        // 1、获取相关元素
        var prev = get('prev'),
            lis = get('nav').children,
            next = get('next'),
            ps = get('box').children,
            page = 0;
        // 2、初始在li中渲染前10个姓名
        for(var i=0;i<10;i++){
            lis[i].index = i;
            lis[i].innerHTML = data[i].name;
            // 3、给每个li绑定点击事件
            lis[i].onclick = function(){
                ps[0].innerHTML = data[page+this.index].name;
                ps[1].innerHTML = data[page+this.index].age;
                ps[2].innerHTML = data[page+this.index].xuehao;
            }
        }
        // 4、给左右button绑定点击事件
        // 右箭头事件
        next.onclick = function(){
            // 页数+10
            page += 10;
            if(page>data.length){
                page -= 10;
                return;
            }
            if(page===parseInt(data.length/10)*10){
                for(var i=0;i<data.length%10;i++){
                    lis[i].innerHTML = data[i+page].name;
                }
                for(var i=data.length%10;i<10;i++){
                    lis[i].innerHTML = '';
                }
            }else{
                // 十个li的内容变成当前页的
                for(var i=0;i<10;i++){
                    lis[i].innerHTML = data[i+page].name;
                }
            }
            // box里的内容是当前页的第一个人的
            ps[0].innerHTML = data[page].name;
            ps[1].innerHTML = data[page].age;
            ps[2].innerHTML = data[page].xuehao;
        }
        // 左箭头事件
        prev.onclick = function(){
            if(page == 0){
                return;
            }
            page -= 10;
            for(var i=0;i<10;i++){
                lis[i].innerHTML = data[i+page].name;
            }
            ps[0].innerHTML = data[page].name;
            ps[1].innerHTML = data[page].age;
            ps[2].innerHTML = data[page].xuehao;
        }
    </script>
</body>
</html>

JS

var str = `梁方圆
李宪文
覃荟卉
庞鑫
罗壬力
唐伟明
杨钧全
龙冠雄
曹英豪
蓝宇
黄冠博
刘帅
张思芸
赖文卓
欧军
李汉峰
蓝伟格
包仕富
卢华巨
潘俊龙
丘云祥
任朝锐
苏成林
蒋雄杰
莫凡浩
梁敏杰
黄瑞生
陆启扇
丁海峰
李金醒
莫培文
潘冠瑾
韦树冲
黎天敏
班琳
李念
韦荣崎
蒙家文
李锦清
周鹏超
付彩玉
黄筵淞
蒙伟明
梁月娥
许先漂
许政坤
欧大偲
郑庆
李德鑫
蓝剑源
李金辉
黄凤仪
管培嘉
庞礼民
农昊
曾海祥
陈福桔
陈柯宇
黄熠
黄奇锐
杨志鑫
黄贤才
陆海琦
许文怡
韦雨欣
梁昱
陈旻昊
吴乐裕
刘育辰
谢沛明
黄国庆
宁一健
吴文韬
黄志勇
龚鸿炜
李文龙
农建磊
黄珺雄
黄文轩
刘可凡
黄颉
唐洁
陈铭豪
李婉菊
陈柳延
黄良勇
陆师
尤朗
梁永杰
陆保哲
吴元豪
孙珂`;
function get(id){
    return document.getElementById(id);
}
function log(msg){
    console.log(msg)
}
var arr = str.split('\n');
var data = [];
for(var i=0;i<arr.length;i++){
    data.push({
        name:arr[i],
        age: 15+parseInt(Math.random()*10),
        xuehao: 123456789+parseInt(Math.random()*123456789),
    })
}
log(data);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值