2013-06-01 48 views
20

是否可以將指針事件設置爲僅對滾動或拖動觸摸板起反應?我有一個用於滾動複雜HTML安排的'方法'*,我想知道是否可以限制指針事件只響應滾動/鼠標滾輪操作。如何使用指針事件只對滾動事件做出反應?

我很想知道我是否正確理解這一點。如果pointer-events:none;意味着所有的事件都是無效的,我怎麼能殺死所有的事件,但讓一個事件活躍?

我已經設置了一個比它適合的盒子大的HTML區域,但是如果我要顯示滾動條,由於彈出(位置:頂部),它看起來應該比它應該更高。元件。這個區域仍然需要滾動所以要實現這一點,我已經使用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' 
    }); 
}); 
+0

該屬性來源於SVG規範,對於HTML元素,它仍然非常有限(請參閱https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events)。 HTML元素上'pointer-events'唯一支持的值是'none',它使元素完全忽略指針事件(儘管事件可能會冒泡到元素下面的父元素),而'auto'會設置默認行爲。 – tobi

+0

請檢查您是否可以使用觸摸設備的滾動事件。 http://www.w3schools.com/jquerymobile/jquerymobile_events_scroll.asp – ravi1991

回答

4

至於在規範所述docs

當一個元件已申請pointer-events: none;

的元素是從未的目標任何鼠標事件和任何事件都是無效的;

請看看這個演示:

http://jsbin.com/wewosumehi/1/

事件不會被解僱,你甚至不能滾動container

+1

哦,這是一種恥辱 – SuperUberDuper

+8

這回答了問題,但我,我相信,OP,想知道是否有任何其他方式來完成這個。基本上,是否有任何相當於「指針事件:無」,仍然允許滾動?我也希望滾動條可點擊,但我不確定OP。 – trysis

相關問題