前言

这是我学习

WEB-API

的第五天,把今天学到的记录下来,目的是方便以后的复习,知识在于积累,在于记录,希望给我带来帮助的同时,也能帮助到在自学的你,加油!!!



目录

1.定时器

1.1 一次性定时器案例

1.2 非一次性定时器案例-注册协议按钮禁用

1.3 div颜色渐变

1.4 设置div宽度

2.封装动画函数

2.1 封装动画函数—-移动元素

3.轮播图

3.1 简单轮播图

3.2 左右焦点的轮播图

3.3 无缝连接的轮播图

3.4 完整的轮播图

4.三大系列

4.1 三大系列

4.2 offset系列

三组属性-offset系列中的属性

offset系列具体的值

5.1 直接通过document获取元素

5.2 图片跟着鼠标飞



1. 定时器

1.1 一次性定时器

所谓一次性定时器,指程序只执行一次,不会执行第二次。同时需要注意,一次性定时器的代码不清除会一直留在内存中,所以需要一个清除内存中定时器代码的按钮。


1.1 一次性定时器

onload:页面加载完成后执行

timeId:返回值:定时器id

setTimeout(函数,时间);—指定函数在指定的毫秒数之后执行

clearTimeout(定时器ID);—清除定时器

代码实现逻辑:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script>
		//页面加载后
		window.onload = function () {
   
			//一次性的定时器
			var timeId = window.setTimeout(function () {
   
				alert("一次性定时器,我只执行一次");
			},1000);
			
			//点击这个按钮,停止这个一次性的定时器
			document.getElementById("btn").onclick = function () {
   
				clearTimeout(timeId);
			};
		};
	</script>
</head>
<body>
	<input type="button" value="清除一次性定时器按钮" id="btn"/>
</body>
</html>


1.2 协议按钮禁用

var time = 5; 定义临时变量,储存按钮倒计时时间。

timeId; 定时器id

setInterval(函数,时间); 按照指定时间调用函数。setInterval方法会不停地调用函数

time–; 定时器调用一次,在5秒的基础上减去1秒。(计时器)

clearInterval(); 停止定时器

disabled–定义这个属性后input按钮在指定时间内不可用,不可点击。

false表示可以点击按钮了

代码实现逻辑:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<textarea name="txt" cols="30" rows="10" disabled="disapled">
		这里就是随便写的文字,随便写的,世界这么大,我想去看看。
		秦始皇,打钱,	汉高祖刘邦,打钱...
	</textarea>
	<input type="button" value="请仔细阅读协议(5)" id="btn" />
	
	//引入js
	<script src="common.js"></script>	
	<script>	
		var time = 5;
		var timeId = setInterval(function () {
   
			time--;
			my$("btn").value = "请仔细阅读协议("+time+")";
			if (time <= 0) {
   
				//停止定时器
				clearInterval(timeId);
				my$("btn").disabled = false;
				my$("btn").value = "确定";
			}
		},1000);
		
	</script>
</body>
</html>


1.3 DIV颜色渐变

获取按钮.注册事件=处理函数

opacity:设置DIV透明级别

代码实现逻辑:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>DIV背景颜色渐变</title>
	<style>
	div {
   
		width: 260px;
		height: 200px;
		background-color: hotpink;
	}
	</style>
</head>
<body>
	<div id="dv"></div>
	<input type="button" value="背景渐变" id="btn"/>
	<script src="common.js"></script>
	<script>
		my$("btn").onclick = function () {
   
			var opacity = 10;
			var timeId = setInterval(function () {
   
				opacity--;
				if (opacity <= 0) {
   
					clearInterval(timeId);
				}
				my$("dv").style.opacity = opacity / 10;
			},100);
		};
	</script>
</body>
</html>


1.4 设置DIV宽度

代码实现逻辑:

—-事件里面的width是储存盒子的宽度,定时器调用一次,盒子前进10像素,当盒子走到> 800像素时(盒子宽800px),清除定时器(停止定时器)。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	div {
   
		width: 200px;
		height: 150px;
		background-color: red;
		border-radius: 100px;
	}

	</style>
</head>
<body>
	<div id="dv"></div>
	<input type="button" value="变宽" id="btn" />
	<script src="common.js"></script>
	<script>
		my$("btn").onclick = function () {
   
			var width = 200;
			var timeId = setInterval(function () {
   
				width += 10;
				if (width == 800) {
   
					clearInterval(timeId);
				}
				my$("dv").style.width = width+ "px";
			},100);
		};
	</script>
</body>
</html>



2. 封装动画函数


2.1 封装动画函数—-移动元素

positio:absolute; 脱离文档流,移动位置

element 函数参数,接收div元素的id属性

target 函数参数,接收div元素的width属性

element.offsetLeft 元素当前位置

step 移动距离-宽度

Math.abs(); 返回参数的绝对值,如果参数是正数,返回正数。如果是负数,返回相反数

代码逻辑:

<!DOCTYPE html>
<html lang="en">
<head>
	<meat charset="UTF-8">
	<title>封装动画-移动元素</title>
	<style>
    * {
   
      margin: 0;
      padding: 0;
    }
    input {
   
      margin-top: 20px;
    }
    div {
   
      margin-top: 30px;
      width: 200px;
      height: 100px;
      background-color: green;
      position: absolute;
    }
  	</style>
</head>
<body>
	<input type="button" value="移动400px" id="btn1" />
	<input type="button" value="移动800px" id="btn2" />
	<div id="dv"></div>
	<script src="common.js"><<



版权声明:本文为m0_46940260原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_46940260/article/details/105468307