JavaScript——WebAPI(DOM+BOM)

DOM

文档对象模型

获取元素

根据ID获取:document.getElementByID()

根据标签名获取:document.getElementsByTagName()

根据类名获取(H5新增):document.getElementsByClassName()

​ document.querySelector()

​ document.querySelectorAll()

获取body和html:

​ document.body()

​ document.documentElement

事件三要素

事件源、事件类型、事件处理程序

onclick 鼠标点击

onmouseover 鼠标经过

onmouseout 鼠标离开

onfocus 获得鼠标焦点

onblur 失去焦点

操作元素

改变元素内容

element.innerText

element.innerHTML

属性操作

(src、href、id、alt、title.....)

1.获取元素

2.注册事件

表单元素的属性操作

(type、value、checked、selected、disabled.....)

注:表单里的值文字内容通过value来修改(input.value=’ ');

样式属性操作

1.行内样式操作

element.style.color… 采用驼峰命名法

css权重比较高

2.通过className更改元素样式

在style标签中重新定义一个新的样式

在js中直接引用:获取的元素.className=’’;

自定义属性操作

1.获取属性值

element.属性(元素自带)

element.getAttribute(‘属性’)

2.设置属性值

element.属性=‘值’;

element.setAttribute(‘属性’,‘值’)

3.移除属性

element.removeAttribute(‘属性’)

节点操作

本质获取节点

1.父级节点

node.parentNode

2.子节点与子元素节点

parentNode.childNodes

parentNode.children

第一个子元素节点与最后一个子元素节点

parentNode.firstChild

parentNode.lastChild

3.兄弟节点与兄弟元素节点

node.nextSibling

node.previousSibling

node.nextElementsSibling

node.previousElementsSibling

4.创建节点

document.createElement()

node.appendChild()//添加节点

node.inserBefore()//指定位置插入节点

5.删除节点

node.removeChild()

6.复制节点

node.cloneNode()

事件高级

注册事件(事件监听)

eventTarget.addEventListener(事件类型,事件处理函数,默认false);

删除事件

eventTarget.removeEventListener(事件类型,事件处理函数);

1.注册事件中事件处理函数写在外部

2.删除事件写在事件处理函数内部

DOM事件流

捕获阶段(从外到里)

冒泡阶段(从里到外)

注:js代码只执行捕获或者冒泡阶段中的一个

addEventListener第三个参数为true表示捕获阶段false为冒泡阶段

事件对象

写在事件处理函数的小括号中

常见属性和方法

e.target 返回触发事件的对象

e.type 返回事件的类型

e.preventDefault() 阻止默认事件

e.stopPropagation() 阻止冒泡

事件委托

事件监听器设置到父节点中利用冒泡原理来影响每个子节点

利用e.target获取里面的子元素

常用的鼠标事件

contextmenu 控制应该何时显示上下文菜单

selectstart 鼠标选中

mousemove 鼠标移动

mousedown 鼠标按下

mouseup 鼠标弹起

mouseover 鼠标经过

mouseout 鼠标离开

mouseenter 鼠标经过(不冒泡)

mouseleave 鼠标离开(不冒泡)

鼠标事件对象

e.pageX 返回鼠标相对于文档页面的X坐标

e.pageY 返回鼠标相对于文档页面的Y坐标

e.clientX 返回鼠标相对于浏览器可视窗口的X坐标

e.cilentY 返回鼠标相对于浏览器可视窗口的Y坐标

e.screenX 返回鼠标相对于电脑屏幕的X坐标

e.screenY 返回鼠标相对于电脑屏幕的Y坐标

常用的键盘事件

keyup 某个键盘按键被松开触发

keydown 某个键盘按键按下时触发

keypress 某个键盘按键按下时触发(不识别功能键)

键盘事件对象

e.keyCode 返回该键的ASCII值

BOM

浏览器对象模型

BOM顶级对象window

window对象常见事件

1.等文档内容全部加载完会触发该事件

window.addEventListener(‘load’,function(){});

2.窗口大小事件

window.addEventListener(‘resize’,function(){});

3.定时器

setTimeout()

setInterval()

clearInterval()

clearTimeout()

4.js执行机制(同步,异步)

locationd对象

location.href 获取或者设置整个URL

location.search 返回参数

location.assgin() 跟href可以跳转页面能后退历史记录

loaction.replace() 替换当前页面

location。reload() 重新加载页面

navigatior对象

包含有关浏览器的信息有很多属性常用的时useAgent

该属性可以返回由客户机发送服务器的use-agent头部的值

history对象

back() 可以后退功能

forward() 前进功能

go(参数) 前进后退(参数为1前进一个页面-1后退一个页面0刷新)

PC端网页特效

元素偏移量offset系列

element.offsetParent 返回最近一层带有定位的父级元素

element.offsetTop 返回元素相对带定位的父元素上方的偏移

element.offsetLeft 返回元素相对带定位的父元素上方的偏移

element.offsetWidth 包含内容、padding、border宽度

element.offsetHeight 包含内容、padding、border宽度

元素可视区client系列

element.clientWidth 包含内容、padding宽度

element.clientHeight 包含内容、padding高度

element.clientLeft 左边框宽度

element.clientTop 上边框宽度

元素滚动scroll系列

element.scrollLeft 往左被卷去的距离
element.scrollTop 往上被卷去的距离
pageXOffset/scrollX window往左被卷去的距离
pageYOffset/scrollY window往上被卷去的距离

动画函数的封装

function animate(obj, target, callback) {

    // console.log(callback);  callback = function() {}  调用的时候 callback()

// 先清除以前的定时器,只保留当前的一个定时器执行
clearInterval(obj.timer);
obj.timer = setInterval(function() {
    // 步长值写到定时器的里面
    // 把步长值改为整数 不要出现小数的问题
    // var step = Math.ceil((target - obj.offsetLeft) / 10);
    var step = (target - obj.offsetLeft) / 10;
    step = step > 0 ? Math.ceil(step) : Math.floor(step);
    if (obj.offsetLeft == target) {
        // 停止动画 本质是停止定时器
        clearInterval(obj.timer);
        // 回调函数写到定时器结束里面
        // if (callback) {
        //     // 调用函数
        //     callback();
        // }
        callback && callback();
    }
    // 把每次加1 这个步长值改为一个慢慢变小的值  步长公式:(目标值 - 现在的位置) / 10
    obj.style.left = obj.offsetLeft + step + 'px';

}, 15);
    }

移动端网页特效

触屏事件

touchstart 手指触摸到一个dom元素时触发
touchmove 手指在一个dom元素上滑动时触发
touchend 手指从一个dom元素上移开时触发

触摸事件对象

touches 正在触摸屏幕的所有的手指的一个列表
targetTouches 正在触摸当前DOM的所有的手指的一个列表
changedTouches 手指发生变化的触点

classList相关方法:

element.classList.add() 增加类
element.classList.remove() 删除类
element.classList.toggle() 切换类
element.classList.contains() 判断是否包含某个类,返回true/false

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值