web API、DOM、事件

API:应用程序编程接口,应用程序或开发人员可以调用的第三方应用程序或硬件提供的函数,不需要关注具体资源的源代码;

web API:面向网页开发,需要调用的api;

web API分类:

一种时浏览器厂家提供的API BOM;

一种时按ES的设计,由浏览器厂家提供的操作页面元素的API  DOM;

 

BOM常用的API

Alert()   没有返回值

Prompt() 返回值为字符串

Confirm() 返回值为布尔型

Onload 这是个属性,取值是函数,作用页面全部加载完执行函数

Onunload 这是个属性,取值是函数,作用完全退出页面执行函数

Onbeforeunload 这是个属性,取值是函数,作用退出页面执行函数

定时器:

1、setimeout() window.setTimeout(函数,毫秒时间);在指定的时间之后,执行一次函数

     cleraTimeout(存储任务变量名)  清除任务

2、setInterval() window.setInterval(函数,毫秒时间);按照给定的时间,周期性的调用函数;

    cleraInterval(存储任务变量名) 清除任务

location

1、assgin(URL)  跳转到URL指定的页面

2、reload(布尔值默认false)  重新加载当前页面,false从浏览器缓存加载,true从服务器重新请求并加载

3、replace(URL)  替换当前URL,并更新历史记录

4、hash  获取URL锚点信息

5、 host  主机

6、hostname 主机名

7、search  查询字符串信息

8、href  获取整个URL(统一资源定位符)

存储的是当前页面的URL(统一资源定位符)

URL格式:scheme://host:port/path?query#fragment

Scheme:协议

Host:主机IP

Port:端口,提供网页服务的端口默认8080

Path:要访问文件的路径

Query:携带信息

Fragment:信息片段

History

back() 后退一步

Forward 前进一步

Go(正负整数) 按指定的数值前进或后退

Navigator

userAgent 浏览器信息

Platform 操作系统信息

 

DOM概念

是W3C组织推荐可扩展标记语言编程接口

文档:就是单个网页文件

节点:就是网页中所有的内容(标签,内容,注释,属性)

元素:标签

属性:标签行内属性,样式属性

DOM操作:增,删,改,查

Window.document

查:

id  document.getElementById("id取值")

标签  document.getElementsByTagName("标签名”),返回值是个对象

Name  document.getElementsByName(“name取值")

Class  document.getElementByClassName("class取值")

选择器  document.querySelector("选择名称”),找到符合选择器名称的第一个元素

             document.querySelectorAll("选择名称"),找到符合选择器所有元素,返回值是个对象

       操作属性:非表单属性:herf ,scr,id,name,classname

       表单属性:value type checked disabled selecred

       自定义操作属性:setAttribute("属性名","属性值");---添加属性

                                    removeAttribute("属性名");---移出属性

                                    getAttribute("属性名");---获取属性

       样式操作:元素对象style样式属性

       类名操作:元素对象className=”类名";

       :元素(标签)节点

       创建元素三种方法:

       1.document.write("html");

       2.元素对象.innerHTML="html"

       3.document.createElement("标签名"); 创建元素对象,返回值

                        元素对象appendChild(子元素对象);添加

                        给body添加document.body.appendChild(子元素对象);

      注:建议使用第三章方法,性能最好

     元素对象.inserBefore(要插入的元素,已有元素);  ---在某元素之前

     元素对象.removeChild(元素对象)----移出元素

     元素对象.replaceChild(新元素对象,已有元素)---替换元素

节点层级操作

       当前元素.parentNode---当前节点的父节点

        当前元素.childNodes--当前节点的子节点

        当前元素.children--当前节点的子元素

        当前元素.nextSibling--当前节点的后一个兄弟节点

        当前元素.nextElementSibling--当前节点的后一个元素

        当前元素.previousSibling--当前节点的前一个兄弟节点

        当前元素.previousElementSibling--当前节点的前一元素

        当前元素.firstChild--当前节点的第一个孩子节点

        当前元素.lastChild--当前节点的最后一个孩子节点

事件: 

事件三要素:1、事件源      2、事件类型     3、事件处理程序

事件的使用:

1、在标签内能过属性使用事件

2、通过js注册事件:

       事件源.事件类型=function(){}

       事件源.addEventlistener("事件类型",处理程序,布尔值);

                  事件类型:字符串,不加on

                   处理程序:匿名函数或调用函数

                   布尔值

         事件源.attachEvent();------//ie浏览器

//有兼容性的注册事件函数;

function addEvent(element,eventType,funName,broad){

      if(element.addEventListener){

            element.addEventListener(eventType,funName,broad);

     }else if(element.attachEvent){

             element.attachEvent("on"+eventType,funName);

      }else{

             element["on"+eventType]=funName;

       }

}

3.移出事件

                 事件源.事件类型=null;

                 事件源.removeEventListener("事件类型”);

                  事件源.detachEvent("事件类型“);

//有兼容性的移出事件函数

function removeEvent(element,eventType,funName,broad){

        if(element.removeEventListener){

              element.removeEventListener(eventType,funName,broad);

         }else if(element.detachEvent){

                     element.detachEvent("on"+eventType,funName);

         }else{

                  element["on"+eventType]=null;

           }

}

事件三个阶段:

     1、捕获

      2、当前

      3、冒泡

      注:event.eventPhase

阻止冒泡:event.stopPropagation(); //那一层需要阻止冒泡,写到哪一层,也就是要写到当前阶段。

 

注:不能阻止捕获+

event常见属性

event.type获取事件类型

event.clientX/clienY 获取当前事件源在浏览器窗口中的位置

event.screenX/screenY 获取当前事件源在页面中的位置

event.screenX/screenY 获取当前事件源在屏幕中的位置

event.target || event.srcElement 当前事件源

event.preventDefaulte() 取消默认行为,例如:提交按钮,超链接

事件委托:把子元素要注册的事件,委托给父元素注册,通过冒泡或捕获的方式,在子元素当前阶段,触发,获取当前阶段事件源的方式event.target || event.srcElement

常见事件:

鼠标事件:onclick , onmouseover , onmousedown , onmouseup , onmouseout , ondblcick

【注】:event.button = 0(左键)|1(滚轮)| 2(右键)

键盘事件:onkeydown , onkeyup , onkeypress 按下并松开 

【注】:event.keycode 获得按键ASCLL码 [0  48] ,[a  97],[A  65] , [cr(回车) 13], [左方向键  37],[上方向键 38] ,[右方向键 39] , [下方向键   40]

其他事件:

Onchange 内容改变         Onblur 失去焦点        Onfocus 失去焦点

偏移量:offset

Offsetleft 取正值从左向右偏移,取负值从右向左偏移

Offsettop 取正值从上向下偏移,取负值从下向上偏移

OffsetWidth 获取元素高度

OffsetHeight 获取元素的高度

OffsetParent 获取定位过的父元素,即有可能不是离的最近的父级元素

客户区大小:

clientLeft 离已定位的父级元素的左边距,包括自身左边框宽度。

clientTop 离已定位的父级元素的上边距,包括自身上边框宽度。

clientWidth 已定位的父级元素的子元素内边距和内容的宽度之和

clientHeight 已定位的父级元素的子元素内边距和内容的高度之和

流动偏移量:

scrollHeight:隐藏部分和可见部分之和。

scrollWidth:隐藏部分和可见部分之和。

scrollLeft:隐藏部分与可见部分左边的距离。

scrollTop:隐藏部分与可见部分上边的距离。

 

 

补充与扩展

Array.isArray()  判断一个对象是否为数组

Instdanceof    表达式  Instdanceof   类型  切记这个是运算符号  

伪数组  类型是对象,以对象方式保存数据,但以数组方式即加中括号访问属性

 

属性选择器

标签选择[属性=属性值]精确匹配

标签选择[属性^=属性值]开始位置部分匹配

标签选择[属性$=属性值]结束位置部分匹配

标签选择[属性*=属性值]任意位置部分匹配

 

快捷键:div>ol>li{第$$个}*任意整数。

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值