20151211小问题

1.事件对象的clientX/clientY,screenX/screenY,offsetX/offsetY,pageX/pageY,x/y

事件对象(event):就是发生事件时的元素,鼠标位置,鼠标状态,键盘按键的状态等事件里的细节状态.

打个比方,有个地方出了车祸,此时就有一个包含所有车祸事件状态的对象,它里面有发生车祸的人,发生车祸时车的位置,受伤情况等等.

比如一个点击事件,它的事件对象里,包含有许多的事件细节,状态.例如此时鼠标的位置,键盘的ctrl按键是否按下,shift按键是否按下等,事件名type,事件元素,时间戳timeStamp等一系列事件状态.

 

clientX/clientY:返回当事件被触发时,鼠标指针的水平/垂直坐标.鼠标相对于windows窗口的坐标.

screenX/screenY:返回当某个事件被触发时,鼠标指针的水平/垂直坐标.相对于电脑左/上屏幕的.

offsetX/offsetY:发生事件的地点在事件源元素的坐标系统中的x/y坐标.(IE属性),不被所有浏览器支持。只在你想要取得一个元素相对于它的绝对定位的父元素的位置时有用处

pageX/pageY:这个东西是相对于document的。只是IE678不支持,IE9支持

x/y:事件发生的位置的x/y坐标,它们相对于用CSS动态定位的最内层包容元素.(IE属性),和clientX/clientY相似.

 

2.getComputedStyle,currentStyle(兼容性处理)

getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象([object CSSStyleDeclaration])只读.

obj.currentStyle[attr]在IE中有用,在FF和Chrome中报错.

“DOM2级样式”增强了document.defaultView,提供了getComputedStyle()方法。这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如“:after”)。如果不需要伪元素信息,第二个参数可以是null。getComputerStyle()方法返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算的样式。

所以获取css属性时,要做一个兼容处理,可以封装一个函数,供其他时候使用.

function getStyle( obj,attr ){
    if( obj.currentStyle ){
        return obj.currentStyle[attr]
    }else{
        return getComputedStyle(obj)[attr];
    };
};

 

3.getComputedStyle与style的区别

getComputedStyle只可读,不可写;而element.style可读可写.

getComputedStyle方法获取的是最终应用在元素上的所有CSS属性对象,而element.style只能获取元素style属性中的CSS样式,即只能获取写在html标签中的写在style属性中的值(style=”…”),而无法获取定义在<style type=”text/css”>里面的属性.前面获取的对象范围大,后面的获取对象范围小.

 

4.getPropertyValue与getAttribute

getPropertyValue方法可以获取CSS样式申明对象上的属性值(直接属性名称).

比如我们在一个id为oDiv元素上加了一个float:left;那么我们用window.getComputedStyle(oDiv,null).getPropertyValue(“float”);它获取的就是left.

getPropertyValue()里面的书写形式不支持驼峰写法,如果想知道一个元素的层级,那么getPropertyValue("z-index"),而不能用zIndex代替.

不过在IE低版本里,用getPropertyValue()会报错,这时IE可以用style.getAttribute(),这里属性名需要驼峰写法.

转载于:https://www.cnblogs.com/sunshinegirl-7/p/5040091.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值