学习总结(十一周)(考核周)

学习总结

轮播图

在这里插入图片描述

html部分

		<!-- 创建外部div -->
		<div id="outer">
			<ul id="imgList">
				<li><img src="./img/01.jpg" /></li>
				<li><img src="./img/02.jpg" /></li>
				<li><img src="./img/03.jpg" /></li>
				<li><img src="./img/04.jpg" /></li>
				<li><img src="./img/01.jpg" /></li>
			</ul>
			<div id="navDiv">
				<a href="javascript:;"></a>
				<a href="javascript:;"></a>
				<a href="javascript:;"></a>
				<a href="javascript:;"></a>
			</div>
		</div>

CSS部分

			/*清除浏览器默认样式*/
			*{
				margin: 0;
				padding: 0;
			}
			img{
				width: 490px;
				height: 627px;
			}
			#outer{
				width: 500px;
				height: 630px;
				margin: 50px auto;
				background-color: aqua;
				position: relative;
				overflow: hidden;
			}
			#imgList{
				list-style: none;
				position: absolute;			}
			#imgList li{
				float: left;
				margin: 0 10px;
			}
			#navDiv{
				position: absolute;
				bottom:15px;
				left: 50%;
			}
			/*导航点样式*/
			#navDiv a{
				float: left;
				width: 10px;
				height: 10px;
				margin: 0 5px;
				border-radius:5px;
				background-color: pink;
			}
			/*鼠标悬浮变色*/
			#navDiv a:hover{
				background-color: black;
			}

JS部分

window.onload = function(){
				var imgList = document.getElementById("imgList");
				var imgArr = document.getElementsByTagName("img");
				imgList.style.width = 510*imgArr.length+"px";
				//默认显示图片索引
				var index = 0;
				//获取所有的a
				var allA = document.getElementsByTagName("a");
				//设置默认选中效果
				allA[index].style.backgroundColor = "black";
				//点击超链接切换图片
				//为所有超链接绑定单击响应函数
				for(var i=0;i<allA.length;i++){
					//为每个超链接添加一个num属性
					allA[i].num = i;
					//为超链接绑定单击响应函数
					allA[i].onclick = function(){
						//关闭自动切换的定时器
						clearInterval(timer);
						//获取点击超链接的索引,并将其设为index
						index = this.num;
						//切换图片
						// imgList.style.left = -510*index + "px";
						//设置选中的a
						setA();
						//使用move函数
						mover(imgList,"left", -510*index , 20 ,function(){
							//动画执行完毕,开启自动切换
							autoChange();
						});
					};
				}
				//开启自动切换图片
				autoChange();
				
				
				//创建一个方法用来设置选中的a
				function setA(){
					//判断当前索引是否是最后一张图片
					if(index >= imgArr.length - 1){
						//则将index设置为0
						index = 0;
						//此时显示的最后一张图片,而最后一张和第一张是一模一样
						//通过css将最后一张切换成第一张
						imgList.style.left = 0;
					}
					for(var i=0;i<allA.length;i++){
						allA[i].style.backgroundColor = "";
					}
					allA[index].style.backgroundColor = "black";
				};
				
				var timer;
				function autoChange(){
					//开启定时器,定时切换照片
					timer = setInterval(function(){
						//索引自增
						index++;
						//判断index的值
						index %= imgArr.length;
						//执行动画,切换图片
						mover(imgList,"left",-510*index,20,function(){
							//修改导航点
							setA();
						});
						
					},2000);
				}
			};

move函数(理解)

var timer;
/*参数:
	obj:要执行动画的对象   
	attr:要执行动画的样式,eg:left  top  width  height
	target:执行动画的目标位置
	speed:移动的速度(正数向右,负数向左)   
	callback:回调函数,会在动画执行完毕后执行
*/
function mover(obj,attr,target,speed,callback){
	//关闭上一个定时器
	clearInterval(obj.timer);
	//获取元素当前位置
	var current = parseInt(getStyle(obj,attr));
	//判断速度的正负值
	if(current > target){
		//此时速度应为负值
		speed = -speed;
	}
	//开启一个定时器,用来执行动画效果
	//向执行动画的对象中添加一个timer属性,用来保存它自己的定时器的标识
	obj.timer = setInterval(function(){
		//获取原来的attr值
		var oldValue = parseInt(getStyle(obj,attr));
		//在旧值的基础上增加
		var newValue = oldValue + speed;
		//向左移动时,需要判断newValue是否小于target
		//向右移动时,需要判断newValue是否大于target
		if((speed < 0 && newValue < target) || (speed>0 && newValue > target)){
			newValue = target;
		}
		obj.style[attr]= newValue + "px";
		if(newValue == target){
			//关闭定时器
			clearInterval(obj.timer);
			//动画执行完毕,调用回调函数
			callback && callback();
		}
	},30);
}
/* 定义一个函数,用来获取指定元素的当前样式
 * 参数:
 * 	obj 要获取样式的元素
 * 	name 要获取的样式名
 */
function getStyle(obj,name){
	if(window.getComputedStyle){
		//正常浏览器的方式,具有getComputedStyle()方法
		return getComputedStyle(obj,null)[name];
	}else {
		//IE8的方式
		return obj.currentStyle[name];
	}
}

考核总结

本周考核难点在于各种不同的轮播图,跟着视频写完不能完全理解,写的很多东西不知道怎么用,没有完全掌握,一些知识点没有掌握,学完就忘记,也不能很好的理解。

考核漏洞

1. 相等运算符
比较两个值是否相等,相等返回true,不相等返回false
==
如果类型不同则会自动进行类型转换
undefined 衍生自 null,所以这两个值做相等判断时,会返回true
NaN不和任何值相等,包括他本身;可以通过isNaN()函数来判断一个值是否是NaN
!= 不相等
不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false
=== 全等
用来判断两个值是全等,它和相等类似,不同的是它不会自动转换类型
如果两个值的类型不同,直接返回false
!== 不全等
用来判断两个值是否不全等,它和相等类似,不同的是它不会自动转换类型
如果两个值的类型不同,直接返回true
(重点:==&===的区别)
2.创建对象的方法
1)使用new关键字调用的函数,是构造函数constructor
构造函数是专门用来创建对象的函数
使用typeof检查一个对象时,会返回object
2)使用工厂方法创建对象
在这里插入图片描述
3.DOM
Document Object Model文档对象模型
文档 文档表示的就是整个的HTML网页文档
对象 对象表示将网页中的每一个部分都转换为了一个对象。
模型 使用模型来表示对象之间的关系,这样方便我们获取对象。
4.延时调用和定时调用的区别
定时调用会执行多次,而延时调用只会执行一次
延时调用和定时调用实际上是可以互相代替的

下周计划

开始期末总复习,完成实训周项目,复习专业课知识,备战期末

生活小结

本周趁着放假回了家,吃到了亲爱的妈妈做的饭,我可真是个妈宝女,总之是快乐的一周,等下还要去看一闪一闪亮星星,张万森等我哦
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值