Web Apls

ByIdByTagNameByClassNamequerySelectorAll2.注册事件on+事件类型注册点击click事件注册focus和blur事件鼠标按下mousedown鼠标移动mousemove鼠标弹起mouseup键盘按下keydown键盘弹起keyup鼠标进入鼠标移出滚动事件3.对象属性属性:开关属性:值的状态只有两个 true falsedisabled 设置是否禁用checked 设置是否选择selected 设置下拉框是否选择操作属性的方法:对属性进行增
摘要由CSDN通过智能技术生成

一.DOM

1.获取节点DOM

  • 节点:标签、文本、属性

ById

  • 参数:id的字符串
  • 返回值:DOM节点 也是对象
document.getElementById('id字符串');
//获取body
document.body

ByTagName

  • 参数:标签名的1字符串
  • 返回值:伪数组 没有forEach方法 可以遍历 、可以使用for循环
document.getElementsByTagName('li')

ByClassName

  • 参数:类名的字符串
  • 返回值 伪数组 没有forEach方法 可以遍历 可以使用for循环
document.getElementsByClassName('.box');

querySelectorAll

  • 参数:css选择器
  • 返回值 伪数组 可以使用forEach循环 遍历 for循环
var lis=document.querySelectorAll('li');

2.注册事件on+事件类型

注册点击click事件

  • 事件源
  • 点击行为
  • 响应

注册focus和blur事件

  • focus 获取焦点
  • blur 失去焦点

鼠标按下mousedown

box.onmousemove=function(){
    
}

鼠标移动mousemove

box.onmousemove=function(){
    
}

鼠标弹起mouseup

box.onmouseup=function(){
    
}

键盘按下keydown

document.onkeydown=function(e){
    console.log(e.keyCode);//返回不同的键的码数
    console.log(e.ctrlKey);//判断按下的键是否为ctrl键
}

键盘弹起keyup

document.onkeyup=function(){
    
}

鼠标进入

box.onmouseover=function(){
    
}

鼠标移出

box.onmouseout=function(){
    
}

滚动事件

p.onscroll=function(){
    //卷入的高度
    console.log(p.scrollTop);
}

3.对象属性

属性:

  • 标准属性:style
            console.log(btn.style);//返回是style对象

            //获取
            console.log(btn.style.width);

            //设置
            btn.style.backgroundColor='red';

开关属性:

值的状态只有两个 true false

disabled 设置是否禁用

checked 设置是否选择

selected 设置下拉框是否选择

操作属性的方法:

对属性进行增删改查

  • 获取属性getAttribute(‘属性名’)
  • 参数:属性名
  • 返回值:属性值
box.getAttribute('abc');//可以获取标准属性和自定义属性,还可以获取自己定义的属性名

设置属性setAttribute

  • ‘属性名’,‘属性值’
  • 参数:属性名和属性值
box.setAttribute('abc','234');

删除属性removeAttribute(‘属性名’)

  • 参数:删除的属性名
box.removeAttribute('属性名');

4.设置和获取类名

语法:

//获取
console.log(box.className);
//设置   原来的类名完全被覆盖
box.className='e';
box.className+='bg_red';

5.classList

  • 对类名进行增删改
  • 返回值:返回一个对象

添加类名:

btn.onclick=function(){
    div.classList.add('bg_red');
}

删除类名

btn.onclick=function(){
    div.classList.remove('bg_red');
}

切换类名

btn.onclick=function(){
    div.classList.toggle('bg_red');
}

6.自定义属性

  • 自定义属性名:
//以data-开头进行命名
<input type="button" data-src='./images/01.jpg'>
  • 自定义属性获取
console.log(input.dataset);
//返回一个对象
console.log(input.dataset['src']);//input.dataset.src

7.注册事件addEventListener

作用:

  • 多次注册事件 不被覆盖

语法:

btn.addEventListener('click',function(){
    
})

8.事件三个阶段

  • 捕获:从外向里
  • 到达目标
  • 冒泡:从内向外 默认事件是在冒泡阶段执行的
box.addEventListener('click',function(){
    
},false);//默认是false 表示冒泡阶段执行事件

box.addEventListener('click',function(){
    
},true);//true 表示捕获阶段执行事件
  • 阻止冒泡
box.addEventListener('click',function(e){
    e.stopPropagation();
},false)

二.事件对象

  • 描述一次点击行为,看成是一个对象

获取目标对象:

  • e.target

获取绑定事件对象

  • e.currentTarget==this

阻止浏览器默认行为

  • e.preventDefault()
  • return false

1.获取元素位置

  • 当子元素没有设置定位时
box.offsetLeft=父元素的边框+父元素的 marginLeft+父元素的

paddingLeft+子元素的 marginLeft

box.offsetTop=父元素的边框+父元素的 marginTop+父元素的

paddingTop+子元素的 marginTop
  • 当子元素设置定位
box.offsetLeft=left+marginLeft //无论是以谁定位
box.offsetTop=top+marginTop   //无论是以谁定位

2.事件解绑

  • 当用on+事件类型进行解绑方式
btn.onclick=function(){
    btn.onclick=null;
}
  • 当用addEventListener事件进行解绑方式
btn.onclick=function(){
    btn.onclick=null;
}

3.事件委托

概念:

  • 当一些本身存在的子元素设置某些事件,一旦父元素想办法进行添加一些新的子元素的时候,之前设置的子元素的某些事件就会失效,所以引入事件委托
  • 为了让新增的子元素也有此事件的行为
  • 给子元素的父元素注册事件 利用冒泡原理 实现父元素所有子元素注册事件

案例:

//e.target.nodeType:
//节点标签:1
//属性:2
//文本:3

//e.target.nodeValue
//节点标签:null
//属性:属性值
//文本:文本内容

//e.target.nodeName
//节点标签:eg:LI
//属性:小写属性名
//文本:#text

ul.addEventListener('click',function(e){
    if(e.target.nodeName=='LI'){
        alert('1');
    }
})

4.修改、创建、添加节点

修改

  • 设置DOM节点内部html结构 识别HTML结构
		box.innerHTML='<a href="#">百度</a>';

创建节点

  • 只是在js中创建,在页面中不显示
var li=document.createElement('li');
document.write();//识别html结构

添加节点

  • 在父元素的最后一个子元素后面添加
ul.appendChild(li);
  • 在指定位置添加子元素
ul.insertBefore(li,first);

三.BOM

1.window

概念:

  • window是顶级对象
  • window上大部分的属性和方法都是window调用的
  • 所有全局变量和函数都是window顶级对象上的属性和方法

语法:

window.a;
var a;
function fn(){}
window.fn();

2.定时器

一次性定时器

  • 第一个参数:等待一定时间后执行的函数
  • 第二个参数:设置等待多久 毫秒
  • 返回值:清除定时器
var timer=setTimeout(function(){
    
},1000)

//清除定时器
clearTimeout(timer);

永久定时器

  • 第一个参数:等待一定时间后执行的函数
  • 第二个参数:设置等待多久 毫秒
var timer=setInterval(function(){
    
},1000)
//清除定时器
clearInterval(timer);

3.JSON

作用:

  • 因为本地数据存储为字符串格式,当遇到一些对象时,需要转换为字符串,因此BOM提供其JSON格式的字符串的转换
  • 一般格式(字符串 数字)
  • 所有的键和使用双引号包起来
  • 字符串也用双引号包起来

语法:

var arr=[
    {
        info:"",
        
    }
]

4.获取DOM节点的样式

  • 获取行内样式
div.style.left;

BOM中的getComputedStyle

  • 参数是DOM节点
  • 返回值:返回DOM节点的样式对象
window.getComputedStyle(box).width;

返回盒子的实际宽度和高度

  • width=content+padding+border
  • height=content+padding+border
  • 返回值:数字类型
box.offsetWidth;
box.offsetHeight;
console.log(box.style.width); //返回字符串 eg:120px; 只能获取行内元素 可以进行获取和设置
console.log(box.offsetWidth); //返回数字 eg:120;只能进行获取不能设置 获取行内和css内部的样式 获取盒子真实宽度
console.log(window.getComputedStyle(box).width); //返回字符串 eg:120px 返回的就是盒子的内容区域 只能进行获取 可以获取行内和css样式里的样式
console.log(box.clientWidth); //返回数字,eg:100 返回的是盒子的可视区域的宽度,即width+padding 可以获取行内和css内部的样式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值