Microsoft Internet Explore 不支持css3 pointer-events:none; 提供了msElementFromPointer/msElementFromRect 方法
来源:互联网 发布:张大大主持的网络节目 编辑:程序博客网 时间:2024/06/04 22:46
IE 10 开发者指南之文档对象模型
转载于: http://blogs.ejb.cc/archives/3128/ie-10-developers-guide-document-object-models
Windows 开发者预览版中的 IE10 或者 Metro 风格应用包含了许多新的文档对象模型的特性,包括:高级点击测试API — Advanced Hit Testing APIsCSSOM 浮点值支持 — CSSOMFloating Point Value Support媒体查询监听器 — Media Query Listeners触摸和姿态 DOM 事件 — Pointer and Gesture DOM Events注意:这些特性在 IE10 或使用 HTML 的 Metro 风格应用都一样能工作。高级点击测试APIIE10 和 Metro 风格应用中的文档对象模型 (DOM)都支持 elementFromPoint 方法,该方法返回某个视区(viewport)中位于坐标(X,Y)处的元素。这个方法对单一元素仍然有效,比如说点击页面上的某个图片。但是,对于游戏、图形编辑器之类使用多个图层的应用,点击屏幕,是无法获得相交于该点的所有东西的。IE10 引入了 msElementsFromPoint 和 msElementsFromRect 方法,这两个方法可以获得所有相交于指定的(X,Y)坐标或者矩形区域的所有元素,并返回节点列表。msElementsFromPoint 方法msElementsFromPoint 方法以某点的坐标 (X,Y)为参数,返回所有相交于该点的元素节点集合。. 该列表按 Z 顺序排序,这意味着第一个元素就是最顶层的元素。msElementsFromPoint(x, y) 返回某点 (X,Y)坐标之下的元素节点列表。下面的示例代码创建了一些重叠的不同颜色的 Div块。当你点击其中一个时, msElementsFromPoint 方法会得到点击处的所有元素,并将背景颜色变为灰色。由于所有的颜色都会被返回,其中包括 body 和 html,所以我们只改变 nodeName 是 div 的元素的背景色。<!DOCTYPE html ><html ><head> <title>Hittest example</title> <style type="text/css"> button { position:absolute; top:600px; left:20px; } div { display:block; position:absolute; border:2px solid black; opacity:0.8; } #div1 { background-color:Red; left:200px; top:200px; height:200px; width:300px; } #div2 { background-color:Pink; left:150px; top:150px; height:200px; width:300px; } #div3 { background-color:Green; left:250px; top:250px; height:50px; width:80px; } #div4 { background-color:Yellow; left:400px; top:300px; height:250px; width:250px; } #div5 { background-color:Purple; left:275px; top:100px; height:500px; width:20px; } #div6 { background-color:Aqua; left:200px; top:175px; height:50px; width:400px; } #div7 { background-color:Fuchsia; left:430px; top:100px; height:375px; width:30px; } #div8 { background-color:Lime; left:175px; top:290px; height:40px; width:450px; } </style></head><body> <h1>getElementsFromPoint test</h1> <button id="refresh" onclick="refresh();">Refresh</button> <div id="div1"></div> <div id="div2"></div> <div id="div3"></div> <div id="div4"></div> <div id="div5"></div> <div id="div6"></div> <div id="div7"></div> <div id="div8"></div><script type="text/javascript"> window.addEventListener("click", testHit, false); function refresh() { window.location.reload(false); //reload page } function testHit(e) { if (document.msElementsFromPoint) //feature testing { var hitTargets = document.msElementsFromPoint(e.clientX, e.clientY); // get elements from point for (var i = 0; i < hitTargets.length; i++) { if(hitTargets[i].nodeName.toUpperCase() == "DIV") { hitTargets[i].style.backgroundColor = "gray"; } //if it‘s a div, gray it out. } } }</script></body></html>由于 msElementsFromPoint 返回所有相交于某点的元素,包括 html 等其他元素,代码中通过 nodeName 属性过滤出 div 元素。msElementsFromRect 方法msElementsFromRect 方法以一个方形区域为参数,返回所有相交于该区域的元素。这个方形区域由其左上角端点坐标和其宽、高来定义。其定义如下:msElementsFromRect(left,top,width, height); 返回以left、top、width和height定义的方形之下的元素数组。上面的例子只需要添加 width 和 height 就可以使用 msElementsFromRect 了。例如:function testHit(e) { if (Document.msElementsFromRect) //feature testing { var hitTargets = document.msElementsFromRect(e.clientX - 25, e.clientY - 25, 50, 50); // captures elements within 50px block for (var i = 0; i < hitTargets.length; i++) { if(hitTargets[i].nodeName.toUpperCase() == "DIV") { hitTargets[i].style.backgroundColor = "gray"; } //if it’s a div, gray it out. } } }在这个更新的 testHit 函数中,当鼠标点击的时候,以点击点为左上角,宽度为50像的正方形下的所有元素都会被返回。
- Microsoft Internet Explore 不支持css3 pointer-events:none; 提供了msElementFromPointer/msElementFromRect 方法
- CSS3 pointer-events:none
- css3 pointer-events: none;
- css3 pointer-events:none 允许点击穿透
- CSS3 pointer-events:none应用举例及扩展2
- CSS3 pointer-events:none应用举例及扩展
- CSS3 pointer-events:none应用举例及扩展
- CSS3 pointer-events:none应用举例及扩展
- CSS3 pointer-events:none应用举例及扩展
- CSS3 pointer-events:none应用举例及扩展
- CSS3 pointer-events介绍
- css3之pointer-events
- css3属性pointer-events介绍
- CSS3 pointer-events的应用
- css3的pointer-events属性
- CSS3——pointer-events
- pointer-events:none;阻止区块被点击
- Programming Microsoft Internet Explore 5(五)
- qsort的使用
- 微软面试20 itoa的实现
- 关于字符
- 11gr2 新特性Pending Statistics
- VS2010中 C++创建DLL图解
- Microsoft Internet Explore 不支持css3 pointer-events:none; 提供了msElementFromPointer/msElementFromRect 方法
- Android 面试题(有详细答案)
- vim 光标移动笔记
- CMFCToolBar 设置文本显示
- Box2D 2.2.1在VS2008下的编译
- 黑马程序员 ---Java加强_基本数据的自动拆装箱及享元设计模式,javabean
- android:动态创建多个按钮 并给每个按键添加监听事件
- 关于一本书的《Oracle大型数据库系统在AIX/UNIX上的实战详解(第2版)》实在想说说。。。
- powerDesign