09 事件对象e client offset scroll 滚轮|键盘事件

1 事件对象:

事件执行的时候,会产生一系列的信息,这些信息会被浏览器收集起来冰封装为对象传递到事件函数中

IE中事件对象存储在window上,获取:window.evnet

常用的属性:

offsetX、offsetY:这两个属性标记的是鼠标位于元素内部的位置(padding),会受到子元素的影响

clientX clientY:这两个属性标记的是鼠标位于视口中的位置(x, y等价)

pageX pageY:这两个属性标记的是鼠标位于页面中的距离(layerX layerY等价)

screenX screenY:这两个属性标记了鼠标位于屏幕中的位置

2 事件总结

IE中:

dom0级 不能将事假对象传递进来
        attachEvent事件:可以将事件对象传递到事件函数中

高级浏览器

dom0级事件:可以将事件对象传递进来

dom2级事件:可以将事件对象传递到事件函数中

 

 

事件对象阻止冒泡阻止默认行为触发此事件的元素其监听器触发事件的节点(监听事件者)事件的类型返回事件生成的日期和时间
高级ee.stopPropagation();e.preventDefault()e.targete.currentTargettypetimeStamp
IEwindow.evnete.cancelBubble = true;e.returnValue = false;e.srcElementthistype没有

 

 

 

 

3 DOM属性 

scrollWidthclientWidthoffsetWidthclientLeftscrollLeftoffsetLeftoffsetParent
实际内容的宽度content + paddingcontent + padding + border边框的厚度 距离自己定位父元素的左边的距离定位父元素
对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。 对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。 返回或设置匹配元素的滚动条的水平位置

高级浏览器中,从子元素的边框外到定位父元素的边框内

在IE中,从子元素的边框外到定位父元素的边框外 (多算了一条父元素的边框)

 

 

 

 

 

 

4 jQuery中的快捷尺寸

width(),height():  获取content尺寸

innerWidth(),innerHeight()  获取content + padding尺寸

outerWidth(),outerHeight()  获取content + padding + border尺寸

outerWidth(true),outerHeight(true)  获取content + padding + border + margin尺寸

5 jQuery中的定位值

$(dom).position()  获取对象, 包含元素的定位left值,还有定位top值(相对于父元素的偏移)

$(dom).offset(): 获取对象,对象中包含了元素到页面之间的top值和left值

6 页面卷曲值 

当页面的高度超过了视口的高度会出现滚动条,页面的卷动值指的是上面看不到的部分(被卷起来了)

document.body.scrollTop    在旧版本chrome中

document.documentElement.scrollTop   新版的chrome、火狐、IE, 

document.documentElement.clientWidth  获取视口的宽度:

document.documentElement.clientHeight  获取视口的高度:

7 卷曲事件  onscroll(高频事件)

触发方式:滚动鼠标滚轮, 按下键盘上的空格键 , 按下键盘上的上下箭头, 键盘上的PgUp、PgDn

8 滚轮事件(高频事件)

事件名称:

onmousewheel

DOMMouseScroll (火狐)

事件对象

e.wheelDelta  向上为正,120的倍数

e.detail   向下为正,3的倍数  (火狐)

9 键盘事件

onkeydown:键盘按下

onkeyup:键盘弹起

onkeypress:字符输入

使用键盘事件

1 可以对document对象使用键盘事件

2 可以对输入框使用键盘事件

3 设置了tabindex属性的元素,可以使用键盘事件,tabindex用来设置按下tab键时,元素获取焦点的顺序。

key表示字符, keyCode属性获取键码,enter 13  space 32  箭头:左 37 上 38 右 39 下40

[转]关于pageYOffset、scrollTop和scrollY

在获取页面滚动的高度时候,往往有不同的获取方式,而且不同的属性浏览器支持稍有差别:

pageYOffset:属于window对象,IE9+ 、firefox、chrome,opera均支持该方式获取页面滚动高度值,并且会忽略Doctype定义规则。

window.pageYOffset;

 

scrollY: 属于window对象,firefox、chrome,opera支持,IE不支持,忽略Doctype规则。

window.scrollY;

 

页面如果未定义doctype文档头,所有的浏览器都支持document.body.scrollTop属性获取滚动高度。

document.body.scrollTop;

 

如果页面定义了doctype文档头,那么html元素上的scrollTop属相在IE、firefox,Opera(presto内核)下都可以获取都可以获取滚动高度值,而在chrome和safari下其值也为0.

document.documentElement.scrollTop; //Chrome,Safari下为0

 

因此在获取页面滚动高度的时候优先考虑使用 window.pageYOffset 然后在使用scrollTop

var scroll_top = window.pageYOffset || document.documentElement.scrollTop;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值