js事件(点击事件,键盘事件)

JavaScript事件

  • 特效是由事件触发的

  • 事件源:任何一个html元素(节点)都是一个事件源,一个事件源可以添加多个事件

  • 键盘事件:keypress键盘事件,keyup抬起,keydown按下

  • 鼠标事件 文档:load加载 表单:focus获得焦点,blur失去焦点,submit提交事件,change改变事件

  • 其他:scroll滚动事件,select start选择事件

 鼠标事件:

****事件****说明
onclick鼠标点击某个对象
ondblclick鼠标双击某个对象
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开
onmousemove鼠标被移动
onmousedown某个鼠标按键被按下
onmouseup某个鼠标按键被松开
oncontextmenu右键事件
onmousewheel当滚轮被滚动的时候
onmouseenter鼠标进入
onmouseleave鼠标离开

 

onmouseenter 和 onmouseover的区别

1、onmouseover、onmouseout:鼠标经过时自身触发事件,经过其子元素时也触发该事件;(父亲有的东西,儿子也有) ,支持冒泡

2、onmouseenter、onmouseleave:鼠标经过时自身触发事件,经过其子元素时不触发该事件。(父亲的东西就是父亲的,不归儿子所有) ,不支持冒泡

 键盘事件:

事件说明
onkeypress[使用的比较少]键盘的某个键被按下
onkeydown键盘的某个键被按下或按住
onkeyup键盘的某个键被松开

 获取对应的键盘值:

document.onkeyup = function(){
    console.log(event.keyCode);
}

光标事件:

事件说明
onfocus元素获得焦点
onblur元素失去焦点

 窗口事件:

事件说明
onresize览器窗口被调整大小时发生

 表单事件:

事件说明
onsubmit提交按钮被点击
onreset重置按钮被点击
onselect文本内容被选定
onchange用户改变表单元素的内容
oninput在用户输入时触发

 单选框和复选框被选中:

复选框是否被选中需要判断复选框中的checked的值 true:选中 false:没选中

<input type="checkbox" id='inp'/>
<script>
    var oInp = document.querySelector('#inp');
    oInp.onclick = function(){
        console.log(this.checked);
    }
</script>

 加载事件:

事件说明
onload页面或图像加载完成
onbeforeunload页面卸载前执行
<script>
    // 页面加载完之后再执行js
    window.onload = function(){
        var oBox = document.getElementById('box');
        console.log(oBox.innerHTML);
    }
</script>
<div id='box'>hello world</div>

 滚动事件:

事件说明
onscroll窗口发生滚动
scrollTo滚动到指定位置【增加】

 window.scrollTo(options) // option为对象格式 window.scrollTo(options) // option为对象格式

  • top 等同于 y-coord

  • left 等同于 x-coord

  • behavior 类型String,表示滚动行为,支持参数 smooth(平滑滚动),instant(瞬间滚动),默认值auto,实测效果等同于instant

 offset系列用法:

  1. offsetLeft : 用于获取元素到最近的定位父盒子的左侧距离

    1. 计算方式: 当前元素的左边框的左侧到定位父盒子的左边框右侧

    2. 如果父级盒子没有定位, 那么会接着往上找有定位的盒子

    3. 如果上级元素都没有定位,那么最后距离是与body的left值

  2. offsetTop : 用于获取元素到最近定位父盒子的顶部距离

    1. 计算方式:当前元素的上边框的上侧到定位父盒子的上边框下侧

    2. 如果父级盒子没有定位,那么会接着往上找有定位的盒子

    3. 如果上级元素都没有定位,那么最后距离是与body的top值

  3. offsetWidth :用于获取元素的真实宽度(包括元素宽度、内边距和边框,不包括外边距)

  4. offsetHeight : 用于获取元素的真实高度(包括元素宽度、内边距和边框,不包括外边距)

  5. offsetParent :用于获取该元素中有定位的最近父级元素

    1. 如果当前元素的父级元素都没有进行定位,那么offsetParent为body

  6. offsetX:event.offsetX

  7. offsetY:event.offsetX

 client系列用法:

  1. clientWidth : 元素的宽度(包括元素宽度、内边框,不包括边框和外边框)

  2. clientHeight: 元素的高度(包括元素宽度、内边框,不包括边框和外边框)

  3. clientX : 获取鼠标事件发生时的应用客户端区域的水平坐标 event.clientX

  4. clientY : 获取鼠标事件发生时的应用客户端区域的垂直坐标(不包含滚动上去的部分)

inner系列用法:

首先这两个属性是比较特殊的,只能由浏览器使用的。返回当前浏览器窗口大小所对应的宽高度

window.innerHeight (包含滚动条的宽度)

window.innerWidth

scroll系列用法:

  1. scrollHeight :是一个只读属性,它返回该元素的像素高度(包含元素宽度、内边框,不包括边框和外边框),是一个整数,单位是像素 px

    1. 如果内容不足,就是元素的高度

  2. scrollWidth : 是一个只读属性,它返回该元素的像素高度(包含元素宽度,内边距(padding),不包含外边距(margin)、边框(border)),是一个整数,单位是像素 px

    1. 如果内容不足,就是元素的宽度

  3. scrollTop : onscroll事件发生时,元素向上卷曲出去的距离

    1. 标准浏览器生效: document.documentElement.scrollTop

    2. IE浏览器有效: document.body.scrollTop

  4. scrollLeft : onscroll事件发生时,元素向左卷曲出去的距离

  5. scrollIntoView 滚动元素的父容器

jjs中两种添加事件的方式 

  • 方式一 :on+事件名

  • 方法二:添加事件监听

 添加事件监听:

语法1:element.addEventListener(event, function, useCapture)

Event: 必须。字符串,指定事件名。

注意: 不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick"。

Function: 必须。指定要事件触发时执行的函数。

useCapture: 可选。布尔值,(默认值, false. true 代表以事件捕获形式触发事件, false 代表以事件冒泡形式触发事件)

对比onclick和addEventListener

1.addEventListener可以对同一个元素绑定多个事件【相同事件】,执行顺序从上到下依次执行。而onclick同一个元素只能绑定一个【相同】事件,如有多个,后面的事件会覆盖前面的事件。

2.addEventListener的第三个参数为布尔类型,默认为false,也就是执行的冒泡机制,如为true,则执行捕获机制

3.addEventListener它对任何 DOM 元素都是有效的,而不仅仅只对 HTML 元素有效。点击查看dom分类

4.注册addEventListener事件时不需要写on,而onclick方式则必须加on

5.在移除事件上,onclick使用的是指针指向null,例如document.onclick = null,而addEventListener则使用的是独有的移除方法removeListener(要使用此方法,addEventListener必须执行的是外部函数或存在函数名,不然则不能使用)

6.addEventListener为DOM2级事件绑定,onclick为DOM0级事件绑定

 DOM CSS动态样式

obj.style

【获取行内样式】 注意:可以获取样式,也可以设置样式

动态样式

  • 动态样式指通过脚本动态控制元素的样式,实现页面显示格式的动态变化。比如:动态滚动的文本、动态移动的图片、可折叠的树形菜单等。

使用style对象访问样式

  • 每个HTML标记均具有style属性,相应的,JavaScript脚本中的HTML元素对象都具有style属性,该属性是一个style对象。

  • Style对象的属性与CSS样式中的属性一一对应。

元素对象.className="类名"

  • 因为属性名class在JS中为关键字,所在此处写做className

 getComputedStyle

【非IE浏览器下,获取内部样式,或者外部样式】

注意:只能获取不能设置

基本语法: window.getComputedStyle(元素).样式属性

 event对象使用技巧

  e.target 获取元素本身 我们可以使用e.target获取元素本身

  e.target.dataset 获取data-绑定的属性

  e.currentTarget 当前绑定事件的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值