之前我也做过一些canvas特效,往往在canvas全屏时,canvas下层的div就无法进行dom的事件操作,点击之类的就失灵了.之前我的做法要么就是在canvas上加入点击事件,穿透到下层,或者把下层的div通过z-index属性放在canvas的上层.这种办法都显得死板或者展现效果很差. 看了下面这段代码,发现了css3的解决办法: .snow-canvas { display: block; width: 100%; height: 100%; top:; left:; position…
当父层 与子层 有相同的事件时,但子层跟父层执行的内容却不一样时 为了 防止 父层事件对子层造成影响我们可以在子层的方法里做如下操作 function A (event){ event.stopPropagation(); ..... } 这样我们操作子层的时候 ,父层相同的 事件就不会起作用啦 IE兼容 function fn2(e){ //这里做浏览器兼容,如果提供了event 就说明他不是IE if(e && e.stopPropagation){ e.stopPropagation…
html代码 <div class="user2-register-bg"> <div class="user2-register-con"> </div> </div> css代码 .user2-register-bg{padding: 10px;padding: 10px;;filter:Alpha(opacity=); margin-top: 30px;} .user2-register-con{height:5…
父层: jsp中: //页面上添加一个隐藏的输入框待用于被子层设置value,从而将子层的数据传递到此页面 <input type="hidden" id="getValue" name="getValue" value="" /> js代码: //设置function,当执行时,弹出子窗口并传递当前窗口名称 //弹出子窗口(选择商家) function choseMerchant() { //获取当前窗口名称 v…
前言 Pointer Events是一套触控输入处理规格,支持Pointer Events的浏览器包括了IE和Firefox,最近Chrome也宣布即将支持该处理规则. PointerEvent PointEvent对象继承自MouseEvent,使用上也比较类似. mousedown -> pointerdown mouseenter -> pointerenter mouseleave -> pointerleave mousemove -> pointermove mouse…
[来源]:在开发移动端网站时,会经常徘徊在click和touchstart之间:因为touchstart虽然好用和快速响应:但是其缺点也是显而易见的,当我们大面积的使用touchstart的时候就会遇到,滚动页面的时候会频繁的触发,导致其不友好的体验:所以,不能单独的说哪个好与不好,而应该利用其长处,规避其缺点: 而且,对于a标签,在移动端的跳转方式,等同于click(经过自己实际体验) [问题]在我们在上层触发touchstart的时候,下层的click或者a标签都会同时被触发(严格的讲是35…
Flash里面有个很好的特性是,一个容器里,不存在实际对象的部分,不会阻拦鼠标事件穿透到下一层. 前端就不一样了,两个div层叠以后,上层div会接收到所有事件(即使这个div里面内容是空的,没有任何实际对象),下层div什么事件都接不到. 举个例子: 这个示意图中 C方块在A容器中(A容器边框为红色) D方块在B容器中(B容器边框为绿色) A B部分重叠,B在上层. 不做任何处理的话,C方块永远无法被点到,因为B把它盖住了. 下面,我将给出一种方案,在不改变页面结构的情况下,让CD都能得到正常…
之前在逛Apple Store时看到了下面的UI: 交互图标非常圆滑上手也很舒服,虽然背景底色本就是白底,但是只依赖css能不能使  "+" 穿透背景看到底色 ? 大致思路如下: 一开始的思路是将内容主体呈现为透明色,再赋予子元素一个 固定宽高 和 box-shadow: 0 0 0 2021px #fff; 父容器 overflow: hidden;  通过足够大的不模糊阴影实现一个假的背景色,内容主体部分仍然为透明,造成一种伪穿透的效果. 但这种方法只限于规则图形,真正应用到字符上…
使用绝对定位元素,让元素A完全盖住元素B时,如何通过元素A来响应元素B的事件呢? 上图可以用下面的SVG代码来实现: <svg width="200" height="180"> <rect x="50" y="50" width="50" height="50" fill="#f34b5b" onclick="alert('Clicked…
什么是事件穿透? 点击上面的一层时会触发下面一层的事件 ”google”说原因是“tap事件实际上是在冒泡到body上时才触发”,也就是Zepto的tap事件是绑定在document上的,所以会导致 现象原因:zepto的tap通过兼听绑定在document上的touch事件来完成tap事件的模拟的,及tap事件是冒泡到document上触发的,再点击完成时的tap事件(touchstart\touchend)需要冒泡到document上才会触发,而在冒泡到document之前,用 户手的接触屏…