JS Event 物件——20181116
阿新 • • 發佈:2018-12-06
Event.eventPhase
Event.bubbles
屬性返回一個布林值,表示當前事件是否會冒泡。該屬性為只讀屬性,一般用來了解 Event 例項是否可以冒泡。前面說過,除非顯式宣告,Event
建構函式生成的事件,預設是不冒泡的。
Event.eventPhase
屬性返回一個整數常量,表示事件目前所處的階段。該屬性只讀。
var phase = event.eventPhase;
Event.eventPhase
的返回值有四種可能。
- 0,事件目前沒有發生。
- 1,事件目前處於捕獲階段,即處於從祖先節點向目標節點的傳播過程中。
- 2,事件到達目標節點,即
Event.target
- 3,事件處於冒泡階段,即處於從目標節點向祖先節點的反向傳播過程中。
Event.timeStamp——滑鼠移動
Event.timeStamp
屬性返回一個毫秒時間戳,表示事件發生的時間。它是相對於網頁載入成功開始計算的。
var evt = new Event('foo');
evt.timeStamp // 3683.6999999995896
它的返回值有可能是整數,也有可能是小數(高精度時間戳),取決於瀏覽器的設定。
下面是一個計算滑鼠移動速度的例子,顯示每秒移動的畫素數量。
var previousX; var previousY; var previousT; window.addEventListener('mousemove', function(event) { if ( previousX !== undefined && previousY !== undefined && previousT !== undefined ) { var deltaX = event.screenX - previousX; var deltaY = event.screenY - previousY; var deltaD = Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2)); var deltaT = event.timeStamp - previousT; console.log(deltaD / deltaT * 1000); } previousX = event.screenX; previousY = event.screenY; previousT = event.timeStamp; });
————————————————————————————END——————————————————————————