5.窗口事件

5.1.onload事件

元素加载完成时触发,常用的就是window.onload

window.onload = function(){
//等页面加载完成时执行这里的代码
}

5.1.resize

当浏览器窗口改变的时候触发

window.onresize = function(){
alert(1)
}

6.event对象

6.1.什么是event对象?

event对象代表事件的状态,当事件发生的时候用来记录事件的详细信息,类似于飞机的黑匣子。

在ie和chrome中,事件对象(event)是一个内置的全局对象,必须在事件调用的时候才有值,如果没有事件调用,event没有值,

在firefox中event对象没有被定义,如果一个函数被事件调用,那么这个事件函数中的第一个参数就是event对象,这也是标准浏览器下的处理方式,在非标准下,这种方式不被采用

总结:在非标准下,使用被定义好的event内置对象,在标准下使用事件函数中的第一个参数,假设传入的第一个参数为ev,可以用逻辑或做兼容,var ev = ev || event

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onunload = function(){
var oDiv = document.getElementById('box');
oDiv.onclick = function(ev){
//这里的ev就是event对象
//兼容性处理
var ev = ev || event;
console.log(ev);
}
}
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>

6.2.event对象上的属性 clientX,clientY

clientX 事件属性返回当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平坐标。clientY 事件属性返回当事件被触发时鼠标指针向对于浏览器页面(客户区)的垂直坐标。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementById('box'); document.onmousemove = function(ev){
//event对象
var ev = ev || event;
//innerHtml表示往div里面添加内容
oDiv.innerHTML = "clientX:"+ev.clientX+",clientY:"+ev.clientY;
}
}
</script>
<style type="text/css">
#box{
height: 100px;
background: black;
color: white;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>

6.3.综合案例2

综合案例2代码实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
window.onload = function(){
//获取到box对象
var oDiv = document.getElementById("box"); oDiv.onmousedown = function(ev){
//事件兼容性处理
var ev = ev || event; var disX = ev.clientX - oDiv.offsetLeft;
var disY = ev.clientY - oDiv.offsetTop; document.onmousemove = function(ev){ var ev = ev || event; oDiv.style.left = ev.clientX - disX + "px";
oDiv.style.top = ev.clientY -disY + "px";
}
document.onmouseup = function(){ document.onmousemove = null;
document.onmouseup = null;
}
return false;
}
}
</script>
<style type="text/css">
#box{
position: absolute; }
#box img{
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div id="box">
<img src="img/window.png"/>
</div>
</body>
</html>

6.4.event对象上的keycode属性

对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。

```
```
//对比onkeypress,有什么不同?

```
**总结:keycode主要是用来记录用户按下的是哪个键,onkeypress和onkeydown按下时,键盘码不同,常用于游戏中控制方向或者翻页,onkeypress事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。 **

6.5.综合案例3

//通过键盘控制方向
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload = function(){
//获取到box对象
var oBox = document.getElementById('box');
//定义x y轴的增量
var x = y= 0;
//键盘按下事件
document.onkeydown = function(ev){
//事件兼容
var ev = ev || event; //上38 下 40 左37 右39
switch(ev.keyCode){
case 38:
y -= 10;
break;
case 40:
y += 10;
break;
case 37:
x -= 10;
break;
case 39:
x += 10;
break;
}
//改变偏移量
oBox.style.left = x + "px";
oBox.style.top = y + "px";
}
}
</script>
<style type="text/css">
#box{
width: 100px;
height: 100px;
background: red;
position: absolute;
}
</style>
</head>
<body>
<div id="box">
</div>
</body>
</html>

螺钉课堂视频课程地址:http://edu.nodeing.com

js事件入门(5)的更多相关文章

  1. js事件入门(2)

    2.鼠标事件 鼠标事件就是用户与页面的许多交互时通过鼠标移动或者鼠标点击等触发的事件. 2.1.onmousedown 鼠标按下的时候触发的事件 <!DOCTYPE html> <h ...

  2. js事件入门(6)

    7.事件冒泡机制 7.1.什么是事件冒泡 当一个元素接收到一个事件以后,会将事件传播给它的父级元素,它的负级元素会一层一层往上传播,直到最顶层window,这种事件传播机制叫作事件冒泡. <!D ...

  3. js事件入门(4)

    4.表单事件 表单事件处理主要用来验证表单,可以处理用户在表单上所做的任何操作. 4.1.onsubmit事件 当用户点击submit按钮来提交表单时,就会触发onsubmit事件,如果事件处理程序返 ...

  4. js事件入门(3)

    3.键盘事件 3.1.onkeydown 键盘按下事件 当键盘按下的时候触发 <!DOCTYPE html> <html> <head> <meta char ...

  5. js事件入门(1)

    1.事件相关概念 1.1 什么是事件? 事件是用户在访问页面时执行的操作,也就是用户访问页面时的行为.当浏览器探测到一个事件时,比如鼠标点击或者按键.它可以触发与这个事件相关的JavaScript对象 ...

  6. Node.js快速入门

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  7. 第一百一十九节,JavaScript事件入门

    JavaScript事件入门 学习要点: 1.事件介绍 2.内联模型 3.脚本模型 4.事件处理函数 JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击.当用户执行某些操 ...

  8. Node.js开发入门—HelloWorld再分析

    在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld站点,这次我们再来细致分析下代码.了解很多其它的细节. 先看看http版本号的HelloWorld代码: 代码就是这 ...

  9. Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二)

    Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二) 前言 上篇文章对Vue.js有了初步理解,接下来我们把Vue.js基础语法快速的过一遍,先混个脸熟留个印象就 ...

随机推荐

  1. 非阻塞赋值(Non-blocking Assignment)是个伪需求

    https://mp.weixin.qq.com/s/mH84421WDGRb7cuU5FEFIQ Verilog的赋值很是复杂,包括: 1. Continuous assignment; 2. Pr ...

  2. Chisel3 - model - Builder

    https://mp.weixin.qq.com/s/THqyhoLbbuXXAtdQXRQDdA   介绍构建硬件模型的Builder.   1. DynamicContext   ​​ 动态上下文 ...

  3. JAVASE(十四) 集合: 数组和集合、Collection、Iterator、List、Set、Map

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 ...

  4. 结合 AOP 轻松处理事件发布处理日志

    结合 AOP 轻松处理事件发布处理日志 Intro 前段时间,实现了 EventBus 以及 EventQueue 基于 Event 的事件处理,但是没有做日志(EventLog)相关的部分,原本想增 ...

  5. Java实现 LeetCode 334 递增的三元子序列

    334. 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ...

  6. Java实现 LeetCode 324 摆动排序 II

    324. 摆动排序 II 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]- 的顺序. 示例 1: 输入: n ...

  7. Java实现 蓝桥杯VIP 算法提高 高精度乘法

    算法提高 高精度乘法 时间限制:1.0s 内存限制:256.0MB 问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-2 ...

  8. PAT 害死人不偿命的(3n+1)猜想

    卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 3n+1 )砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 195 ...

  9. Java基础(八)

    一.Java集合框架 Java集合类库也将接口与实现分离. 队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数. 队列通常有两种实现方式:一种是使用循环数组:另一 ...

  10. 浅谈Python内置对象类型——数字篇(附py2和py3的区别之一)

    Python是一门面向对象的编程设计语言,程序中每一样东西都可以视为一个对象.Python内置对象可以分为简单类型和容器类型,简单类型主要是数值型数据,而容器类型是可以包含其他对象类型的集体,如序列. ...