webapi

164 阅读5分钟

**webapi 网页api可以直接调用

sp20220426_211857_991.png

webapi

1.前端三老铁
	HTML: 确定结构
	CSS : 确定样式
	JS : 确定交互
2. JS组成三部分
	ECMAScript   : 确定js的语法规范
	DOM
		document object model : 操作(增            删改查)网页内容
	BOM
		操作浏览器窗口
3. web =  dom + bom 
	一套操作网页内容+浏览器窗口的 函数
		参数
		功能
		返回值
                    

DOM

增删改查
	查
		查元素
			document.querySelector('选择器')
			document.querySelectorAll('选择器')
			两者区别
				querySelector() : 得到dom对象, 直接使用dom语法
				querySelectorAll() : 得到数组,不能直接使用dom语法。 一定要通过下标取出里面的dom对象,才可以使用dom语法
		查元素属性
			内容属性
				元素.innerText : 获取文本
				元素.innerHTML : 获取文本 + 标签
			HTML属性
				元素.属性名
				改图片:img.src
				改链接:a.href
			CSS属性
				单个修改:  元素.style.样式名 = 样式值
				多个修改: 元素.className = '类名'
				classList语法
					新增: 元素.classList.add('类名')
					移除: 元素.classList.remove('类名')
					切换: 元素.classList.toggle('类名')
				注意点:如果css属性有-,需要转小驼峰。(1)去掉- (2)-后面首字母大写
				css行内权重
			表单属性
				表单值(输入框文本)
					元素.value
				表单状态(布尔)
					是否禁用
						元素.disabled
					是否选中(radio与checkbox)
						元素.checked
					是否选中(option)
						元素.selected
		查节点
			查子元素
				父元素.children
			查兄弟元素
				上一个元素
					元素.previousElementSibling
				下一个元素
					元素.nextElementSibling
			查父元素
				元素.parentNode
	增
		(1)在内存创建空标签:  document.createElement('标签名')
		(2)设置内容
		(3)添加到页面dom
			新增到最后面:  父元素.appendChild(元素)
			新增到元素前面:  父元素.insertBefore( 新增元素, 哪个元素前面 )
	删
		父元素.removeChild(子元素)
	改
           

事件

1.事件交互 三要素
        1. 事件源 : 什么元素
        2.事件类型 : 什么时刻
        3.事件处理函数
2.注册事件
        事件源.事件类型 = 事件处理函数
                box.onclick = function(){ }
        事件源.addEventListener('事件类型',事件处理函数)
3.事件注意点
        3.1 事件注册的时候不会执行。 (函数声明的时候不执行)
        3.2 用户触发事件,浏览器捕捉交互,自动帮我们调用事件处理函数 (浏览器自动调用函数)
4.事件类型
        鼠标事件
                鼠标单击: onclick
                鼠标双击: ondblclick
                鼠标移入: onmouseenter
                鼠标移出: onmouseleave
                鼠标移动: onmousemove
        键盘事件
                输入事件: oninput
                        实时获取输入框文本
                成为焦点: onfocus
                失去焦点: onblur
                键盘按下: onkeydown
                        监听enter键
                键盘松开: onkeyup
        页面事件
                页面移动:  window.onmousemove
                页面滚动: window.onscroll
                        页面滚动距离 :  document.documentElement.scrollTop
                页面大小变化 : window.onresize
                        页面视口宽度 :  document.documentElement.clientWidth
5.事件对象
        1.事件对象作用 :
                存储与事件相关的数据 (浏览器自动捕获鼠标坐标与键盘按键,自动存储对象)
        2.如何获取事件对象
                给事件处理函数添加形参 e
        3.事件对象常用属性
                e.pageX / e.pageY : 获取鼠标触发点 到 页面左上角距离
                e.key
                        获取按键字符串 ‘Enter'Tab'
                e.keyCode
                        获取按键ASCII13
                e.preventDefalt()
                        阻止form和a默认事件
                e.stopPropagation()
                        阻止事件流
6.事件流(事件冒泡与事件捕获)
        1.事件冒泡 : 
                触发元素事件,依次触发父级元素‘同名事件’
                元素->父元素->body->html->document->window
        2.事件捕获
                触发元素事件,从最顶级父元素依次往里触发‘同名事件’
                window->document->html->body->父元素->元素
        3.事件流三个阶段
                1.事件捕获
                2.事件目标
                3.事件冒泡
7.事件委托
        1.事件委托 : 给父元素注册,委托给子元素处理
                (1)给父元素注册事件
                (2)判断委托子元素
        2.事件委托原理 : 事件冒泡
        3.事件委托注意点:
                不能用this, this指向父元素
                需要用e.target, 指向触发事件的子元素
        4.事件委托应用:
                动态新增元素注册事件

网页特效

offset家族
	获取元素 ‘自身’  宽高与位置
	元素.offsetWidth / 元素.offsetHeight
		width+padding+border
	元素.offsetLeft / 元素.offsetTop
		自身 到 定位父元素 左/上 内边框距离
scroll家族
	获取元素 ‘内容’  宽高与位置
	元素.scrollWidth / 元素.scrollHeight
		内容宽高
	元素.scrollLeft / 元素.scrollTop
		内容位置 : 滚动条滚动的距离
	应用
		固定导航
		回到顶部  设置页面scrollTop为0
client家族
	获取元素 ‘可视区域’  宽高与位置
	元素.clientWidth / 元素clientHeight
		视口大小
	元素.clientLeft / 元素.clientTop
		左边框和上边框宽度
	应用:响应式(横竖屏适配)

BOM

1.定时器
	1.定时器作用
		一段代码 间隔时间 反复执行
	2.定时器语法
		永久定时器 setInterval()
			开启:  let timeID = setInterval( 回调函数, 时间间隔 )
			清除: clearInterval(timeID)
		一次定时器 setTimeout()
			开启:  let timeID = setTimeout( 回调函数, 时间间隔 )
			清除: clearTimeout(timeID)
	3.定时器场景
		一次定时器: 3s消失广告
		永久定时器
			秒杀
			无限轮播
2.五大对象
	window:浏览器窗口
		特点
			1.是js中的顶级对象, 所有的全局函数,对象都是window里面的成员
			2.window的成员使用时可以省略window
			3.window的top属性不能作为变量名
		方法
			打开窗口: window.open()
			关闭窗口: window.close()
		事件
			window.onload事件(入口函数)
				DOM树 + 外部资源 加载完毕后执行
			window.onbeforeunload事件(关闭事件)
				页面关闭的时候执行,一般用于存储数据
	location : 地址栏
		跳转网页   location.href = 'url'
		location.assign('url') : 跳转
		location.replace('url') : 替换(不能回退)
		location.reload() : 刷新
	history : 历史记录
		history.back() : 回退一页
		history.forward() : 前进一页
		history.go( 数字 )
			负数 : 回退    -1页  -20 : 刷新
			正数: 前进    12页
	navigator : 用户信息(了解)
		naviagtor.userAgent
	screen : 用户电脑屏幕(了解)
3.存储器 localStorage与sessionStorage
	1.作用一致:都是存储数据
		存储大小: 5MB
		只能存储字符串
	2.语法一致:
		设置:setItem('属性名',属性值)
		获取: getItem('属性名)
		删除: removeItem('属性名)
		清空: clear()
	3.面试点:两者区别
		localStorage : 硬盘存储
		sessionStorage:内存存储

正则

1. 正则是  对字符串进行匹配运算 的对象
2.作用 : 对字符串进行匹配运算
	文本格式校验
		手机号
		验证码
		账号6-20
3.语法
	(1)声明 
		new RegExp('正则')
		/正则/
	(2)校验
		test()   true:通过  false:不通过
元字符
	[]
	[^]
	.
	\
	^
	$
	?
	*
	+
	{}
	()
	|
	

image.png