JS事件深入

学习目标:

节数知识点要求

第一节 表单文档事件获取焦点事件了解

失去焦点事件了解

第二节 键盘事件键盘事件的种类了解

键盘属性了解

第三节 滚动事件回到页面顶部掌握

滚动事件掌握

滚动事件的属性掌握

第四节 手机触摸事件手机触摸事件掌握

第五节 表单注册案例表单注册案例掌握

一、表单文档事件

    焦点:js当前正在和用户发生交互的节点称为焦点。可以类比为人类目光汇聚的地方。

    语法:获得焦点和失去焦点事件既可以使用DOM1绑定也可以使用DOM2绑定

八哥总结说明:

这两个事件均不支持事件冒泡。

1.1获得焦点事件

i2.onfocus = function () {console.log("i2获得了焦点")};

i1.addEventListener('focus', function () {console.log('i1捕获事件');}, true);

1.2 失去焦点事件

i1.addEventListener('blur', function () {console.log('i1捕获事件');}, true);

i2.onblur = function () {console.log("i2失去了焦点")};

1.3 oninput事件和onchange事件

onchange:元素发生变化的时候,就会触发。

oninput:当给元素输入内容的时候,就会触发。

区别:

onchange:当失去焦点的时候才会触发此事件。

oninput:当输入内容的时候,会立即触发。

二、键盘事件

2.1键盘事件种类

    键盘事件是指当用户在操作键盘的时候会自动被触发的事件,通常有以下三种:

(1) onkeydown:用户按下任意键都可以触发这个事件。如果按住不放,事件会被连续触发。 (2) onkeypress:用户按下任意键都可以触发这个事件(功能键除外)。如果按住不放,事件会被连续触发 (3) onkeyup: 用户释放按键时触发

ps:键盘事件一般绑定在需要用户输入的元素上(例如input),但是由于键盘事件默认采用事件冒泡机制,因此将键盘事件直接绑定在body之上也是允许的

2.2键盘属性

key和keyCode属性

Key:具体是哪一个键 keyCode:返回keydown何keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符(ascii码值)。

A:65,a:97,0:48,空格键:32.

2.3 实例:键盘控制物体移动

三、滚动事件

3.1回到页面顶部

3.1.1 锚点方式

<body style="height:2000px;">

</body>

3.1.2 scrollTop属性

scrollTop属性表示被隐藏在内容区域上方的像素数(文档距离顶部的距离)。元素未滚动时,scrollTop的值为0,如果元素被垂直滚动了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度

由于scrollTop是可写的,可以利用scrollTop来实现回到顶部的功能

<body style="height:2000px;">

回到顶部

<script>

test.onclick = function(){

document.body.scrollTop = document.documentElement.scrollTop = 0;

}

</script>

</body>

3.2 滚动事件

onscroll:滚动事件

onscroll事件会在【文档】或【元素】发生滚动操作时触发。

window.onscroll = function(){

}

元素中添加滚动事件:

3.3滚动事件的属性

【文档发生滚动时】

属性scrollTop\scrollLeft表示文档滚动的距离:(没有单位)

scrollTop:文档滚动距离顶部的距离。

scrollLeft:文档滚动距离左侧的距离。

非IE:document.documentElement.scrollTop\Left IE:document.body.scrollTop\Left

(可以使用document.body.scrollTop||document.documentElement.scrollTop来解决兼容性)

例:

window.onscroll = function () {            var top = document.body.scrollTop||document.documentElement.scrollTop;            var left = document.body.scrollLeft||document.documentElement.scrollLeft;            console.log('top:'+top+'left:'+left);        };

3.3.1获取scrollLeft和scrollTop的值

3.3.2设置scrollLeft和scrollTop的值

四、手机触摸事件

4.1 手机触摸事件

    (1)touchstart:当手指触摸屏幕时触发;即使已经有一个手指放在了屏幕上也会触发。​    (2)touchmove:当手指在屏幕上滑动时连续的触发。

    (3)touchend:当手指从屏幕上移开时触发。​    (4)touchcancel:当系统停止跟踪触摸时触发。(如电话接入或者弹出信息,一般在这个操作中来做一些暂停游戏类的操作 或者点击通知)

4.2 事件对象的属性

    (1)touches:表示当前跟踪的触摸操作的Touch对象的数组(当前屏幕上所有的触摸点列表)。

    (2)targetTouches:特定于事件目标的Touch对象的数组(当前对象上所有的触摸点列表)。​    (3)changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组(涉及当前事件的触摸点列表)。

\1. 用一个手指接触屏幕,触发事件,此时这三个属性有相同的值。

\2. 用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。当两个手指触摸相同元素时, targetTouches和touches的值相同,否则targetTouches 只有一个值。changedTouches此时只有一个值, 为第二个手指的触摸点,因为第二个手指是引发事件的原因

        clientX:触摸目标在视口中的X坐标。​        clientY:触摸目标在视口中的Y坐标。​        identifier:表示触摸的唯一ID。​        target:触摸的DOM节点坐标

4.3 实例:小盒子在大盒子中移动

五、表单注册案例

onsubmit:表单提交事件

5.1 表单注册实例

5.2作业-用户手机注册页面

5.3实例:新闻滚动

使用javascript开发可拖动组件时,往往需要对鼠标事件进行阻止默认行为操作。对于普通的节点对象,这个一般没什么问题(没有选择文字复制粘贴等需求),但是如果被拖动对象里包含了一些input、select等对象时,如果从一而终(mousestart ,mousemove,mouseend, click)全部preventDefault默认行为,则会使这些节点无法响应用户操作,比如聚焦input输入或者改变select的值。某些特殊情况下的需求(比如拖动是纵向单方向的,而另一方向横向上则需要可以用鼠标选择文字)更是一个不可能的任务。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354