事件对象
Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
什么时候会产生Event 对象呢?
例如: 当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象.
事件通常与函数结合使用,函数不会在事件发生前被执行!

A、只有当事件发生的时候才产生,只能在处理函数内部调用
B、处理函数运行结束后自动销毁

二、如何获取事件对象

IE:window.event
FF:对象.on事件=function(e){}

事件:
鼠标
onclick 当用户点击某个对象时调用的事件句柄。
oncontextmenu 在用户点击鼠标右键打开上下文菜单时触发
ondblclick 当用户双击某个对象时调用的事件句柄。
onmousedown 鼠标按钮被按下。

键盘
onkeydown 某个键盘按键被按下。
onkeypress 某个键盘按键被按下并松开。
onkeyup 某个键盘按键被松开。
框架/对象(Frame/Object)事件 表单事件 剪贴板事件.......

三、事件对象的属性

A、关于鼠标事件的事件对象
1. 相对于浏览器位置的
clientX--当鼠标事件发生时相,鼠标相对于浏览器X轴的位置
clientY--当鼠标事件发生时相,鼠标相对于浏览器Y轴的位置
2.相对于屏幕的位置的
3.相对于事件源的位置

B、关于键盘事件的事件对象

1、keyCode——获得键盘码
2、altKey,ctrlKey,shiftKey--判断这几个键是否被按下,按下为true,否则为false
3、type--用来检测事件的类型,主要用于多个事件通用一个事件处理程序的时候

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.eg:overflow:hidden;
如果元素中的内容超出了给定的宽度和高度属性,overflow 属性可以确定是否显示滚动条等行为。
这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。
因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

2.border-bottom-width 规定下边框的宽度。
border-bottom-style 规定下边框的样式。
border-bottom-color 规定下边框的颜色。
inherit 规定应该从父元素继承 border-bottom 属性的设置。
eg:
border-style:solid;
border-bottom:thick dotted #ff0000;

3.

<textarea> 标签定义多行的文本输入控件。

文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体

可以通过 cols 和 rows 属性来规定 textarea 的尺寸,不过更好的办法是使用 CSS 的 height 和 width 属性。
eg:<textarea id="txt1" rows="4" cols="40"></textarea>

4.操作整个页面

<script>
window.onload=function(){
document.body.onclick=function(){
alert('a');
}
} </script> <body style="border:1px solid red;">
<input type="button" value="aaa"/>
</body> /*想达到一个目的 点击页面的任意位置页面能做出反应(alert..)但是发现
document.body.onclick这招行不通
然后通过 style="border:1px solid red;"发现其实body撑不起来
<input type="button" value="aaa"/>+style发现body就那么大
(如果没有<input type="button" value="aaa"/>这句话(此时body就是一条线 得点击线才会反映alert)
*/
改正: document.onclick=function(){
         alert('a');
}
以后想用到整个页面的话就直接给document加

5.event

window.onload=function (){
/*event事件对象 兼容性
IE下事件处理函数
document.onclick=function(){
alert(event.clientX+','+event.clientY);//告知鼠标点击时的坐标(x,y)在哪个位置
}
Firefox下的事件处理函数 不同于IE 它是有一个参数的 参数是由系统传递过来的
document.onclick=function(ev){
alert(ev.event.clientX+','+ev.event.clientY);
}*/
document.onclick=function(ev){
var oEvent=ev||event;
alert(oEvent.clientX+','+oEvent.clientY);
}
}

6.事件冒泡(是最简单的事件流)

oBtn.onclick=function(ev){
        var oEvent=ev||event; //把事件对象获取过来
        
       oEvent.cancelBubble=true;//取消冒泡 就是事件不会再往上传了
}

/*
当最里面的div被点击之后他会把这个事件传递给他的父集 依次往上传直到html
所以你点击最里面的div(红色部分)会弹出red->green->(204,204,204)->body->html
事件冒泡:事件会顺着层级往上走
*/

<!DOCTYPE html>
<html onclick="alert('html');">
..... <body onclick="alert('body');">
<div style="background:#ccc;" onclick="alert(this.style.background);">
<div style="background:green;" onclick="alert(this.style.background);">
<div style="background:red;" onclick="alert(this.style.background);"></div>
</div>
</div> </body>

7.键盘

keyCode:获取用户按下键盘的哪个按键

document.onkeydown=function(ev){ //按下去就会发生不需要抬起来
var oEvent=ev||event;
alert(oEvent.keyCode); //按下a弹出65 没法出A因为按大小写键盘弹出20
//keyCode获取用户按下键盘的哪个按键
}
ctrlKey告诉我们ctrl有没有按下去(k是大写)
同理shiftKey altKey
 
8.oncontextmenu
document.oncontextmenu=function (){ //oncontextmenu:当用户点击右键

return false;                 再点击右键 右键菜单出不来了--》阻止默认事件
}

只能在文本框内输入数字:

if(oEvent.keyCode<48||oEvent.keyCode>57){
           return false;
} 因为其实在键盘按下什么键 text框内就出现什么键这个也是默认行为

所以如果想只能输入数字 就取消其他类型的默认行为;
 
拖拽行为:      鼠标和窗口左上角的距离保持不变
onmousedown:鼠标按下 onmousemove:鼠标移动 onmouseup:鼠标抬起
onmousemove 事件会在鼠标指针移到指定的对象时发生 当用户按下鼠标按钮执行Javascript代码
 

JS事件基础的更多相关文章

  1. Js 事件基础

    一:js中常见得事件 (1) : 鼠标事件         click :点击事件         dblclick :双击事件         contextmenu : 右键单击事件        ...

  2. 第十一节 JS事件基础

    空白点击事件(没什么用处,做个介绍) <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  3. JS——事件基础应用

    直接写在html标签里: <h1 onclick="this.innerHTML='谢谢!'">请点击该文本</h1> 另外一种在脚本里调用: <!D ...

  4. C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件

    一.基础部分: 1.JavaScript 是什么? 是一门脚本语言,是属于弱类型(语言语法很随意),C#是强类型(语言语法非常严格)(李献策lxc) 优点:JS 执行速度快 2.JS 与java有什么 ...

  5. JS 的事件基础、事件侦听与抛发、

    前言 JavaScript是一种事件驱动型语言.事件驱动是指JavaScript引擎并不是在看到代码之后就会立即执行,而是会在合适的时间才去执行.这个合适的时间是指当某个事件发生之后(例如一个输入框的 ...

  6. node.js零基础详细教程(4):node.js事件机制、node异步IO操作

    第四章 建议学习时间3小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  7. jS事件之网站常用效果汇总

    下拉菜单 <!--简单的设置了样式,方便起见,将style和script写到同一个文档,着重练习事件基础--> <!DOCTYPE html> <html> < ...

  8. JS事件委托的原理和应用

    js事件委托也叫事件代理,实际上事件委托就是通过事件冒泡实现的,所谓的事件就是onclick,onmouseover,ondown等等,那么委托呢?委托就是指本来这个事是要你自己做的,但是你却让别人帮 ...

  9. Node.js 事件循环(Event Loop)介绍

    Node.js 事件循环(Event Loop)介绍 JavaScript是一种单线程运行但又绝不会阻塞的语言,其实现非阻塞的关键是“事件循环”和“回调机制”.Node.js在JavaScript的基 ...

随机推荐

  1. centos6.5 python命令行模式左右建无法使用

    我的虚拟机是centos6.5,自带python2.6:安装了Python2.7(安装了pip管理工具)后,在python2.7命令行模式下,左右键及退格键无法使用,基于以上情况,我进行了百度: 第一 ...

  2. Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL

    在你的浏览器中,进入  > 基本配置(General Configuration). 单击 编辑(Edit). 修改服务器的基础 URL 为 HTTPS.请参考文档  configuring t ...

  3. Confluence 6 修改日志文件的目标位置

    在 log4j 中,一个输出被定义为 'appender'.希望修改 log 文件的目标,你需要停止 Confluence 然后修改设置 log4j.properties 日志配置文件的  'Logg ...

  4. React基础知识备忘

    section-1 //react组件 export class Halo extends React.Component{ constructor(...args){ super(...args); ...

  5. bzoj 1076

    发现自己已经把期望dp忘光了... 其实本质上非常简单,就是利用状压的思想跑期望 首先很容易设计出状态:记状态f[s][i]表示到了第i个点,之前已选过的点的状态为s时所能获得的最大期望得分 但是会发 ...

  6. cut sticks

    问题 : cut sticks 时间限制: 1 Sec  内存限制: 128 MB 题目描述 George took sticks of the same length and cut them ra ...

  7. Linux基础一:Linux的安装及相关配置

    1. 计算机操作系统简介    1) 操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间.    2) 操作系统的内核的定义:操作系统的内核是一 ...

  8. Loadrunner11.0 录制手机App脚本的方法一

    使用Loadrunner录制手机终端App脚本 1. 说明 目前手机APP上的功能日益丰富,对手机应用功能的性能测试需求也越来越多.公司比较抠门没有花钱买Loadrunner,可怜我们工作中一直用的破 ...

  9. python压缩文件

    #coding=utf-8 #压缩文件 import os,os.path import zipfile #压缩:传路径,文件名 def zip_compression(dirname,zipfile ...

  10. 论文阅读笔记十三:The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation(FC-DenseNets)(CVPR2016)

    论文链接:https://arxiv.org/pdf/1611.09326.pdf tensorflow代码:https://github.com/HasnainRaz/FC-DenseNet-Ten ...