【发布时间】:2013-05-28 11:46:36
【问题描述】:
是否可以将指针事件设置为仅对触摸板上的滚动或拖动做出反应?我有一个 div 用于滚动复杂的 html 排列*,我想知道是否可以将指针事件限制为仅对滚动/鼠标滚轮动作做出反应。
我很想知道我是否理解正确。如果pointer-events:none; 意味着所有事件都是无效的,我怎样才能杀死所有事件但让一个处于活动状态?
我已经设置了一个比它适合的框更大的 HTML 区域,但是如果我要显示滚动条,由于弹出 (position:top) 元素,它看起来比它应该的要高.这个区域仍然需要滚动,所以为了实现这一点,我使用 jQuery 使我的“滚动框”跟随 div 中的不可见 div:
<div id="scrollcontrol"style="overflow-y:auto;overflow-x:hidden;position:absolute;
top:12px;left:180px;width:40px;height:1300px;">
<div id="catscrollpos"style="position:absolute;
top:0px;width:200px;height:2250px;">
</div>
</div>
脚本
$('#scrollcontrol').scroll(function({
$('#rangetable').css({
'top':$('#catscrollpos').position().top+'px'
});
});
【问题讨论】:
-
该属性源自 SVG 规范,对于 HTML 元素,它仍然非常有限(参见 developer.mozilla.org/en-US/docs/Web/CSS/pointer-events)。在 HTML 元素上,
pointer-events唯一受支持的值是none,它使元素完全忽略指针事件(尽管事件可能会冒泡到元素下方的父元素),以及设置默认行为的auto. -
请检查是否可以使用触摸设备的滚动事件。 w3schools.com/jquerymobile/jquerymobile_events_scroll.asp
标签: javascript jquery html css scroll