File tree Expand file tree Collapse file tree 4 files changed +60
-16
lines changed
Expand file tree Collapse file tree 4 files changed +60
-16
lines changed Original file line number Diff line number Diff line change 11# jspointerlock
2- [ ![ NPM Version] ( http://img.shields.io/npm/v/jspointerlock.svg?style=flat )] ( https://www.npmjs.org/package/jspointerlock )
2+ [ ![ NPM Version] [ npm-image ]] [ npm-url ]
3+ [ ![ NPM Downloads] [ downloads-image ]] [ downloads-url ]
34
4- HTML5 Pointerlock lib
5+ ** HTML5 Pointer Lock Lib**
6+
7+ ## Usage
8+
9+ ``` js
10+ import $ from " jquery" ;
11+ import PointerLock from " jspointerlock" ;
12+
13+ const element = document .body ;
14+ const pointerlock = new PointerLock (element);
15+
16+ pointerlock .on (" change" , (isLocked ) => {
17+ console .log (` pointer is ${ isLocked ? ' locked' : ' not locked' } ` );
18+ });
19+
20+ $ (element).on (" click" , () => {
21+ pointerlock .requestPointerLock ();
22+
23+ setTimeout (() => {
24+ pointerlock .exitPointerLock ();
25+ }, 3000 );
26+ });
27+ ```
28+
29+
30+ ## License
31+
32+ [ MIT] ( LICENSE )
33+
34+ [ npm-image ] : https://img.shields.io/npm/v/jspointerlock.svg
35+ [ npm-url ] : https://npmjs.org/package/jspointerlock
36+ [ downloads-image ] : https://img.shields.io/npm/dm/jspointerlock.svg
37+ [ downloads-url ] : https://npmjs.org/package/jspointerlock
Original file line number Diff line number Diff line change @@ -4,10 +4,14 @@ import PointerLock from "./src/index";
44const element = document . body ;
55const pointerlock = new PointerLock ( element ) ;
66
7- pointerlock . on ( "change" , ( isOn ) => {
8- console . log ( "pointerlock is " + ( isOn ? "on" : "off" ) ) ;
7+ pointerlock . on ( "change" , ( isLocked ) => {
8+ console . log ( `pointer is ${ isLocked ? 'locked' : 'not locked' } ` ) ;
99} ) ;
1010
1111$ ( element ) . on ( "click" , ( ) => {
1212 pointerlock . requestPointerLock ( ) ;
13+
14+ setTimeout ( ( ) => {
15+ pointerlock . exitPointerLock ( ) ;
16+ } , 3000 ) ;
1317} ) ;
Original file line number Diff line number Diff line change 11{
22 "name" : " jspointerlock" ,
3- "version" : " 0.1.3 " ,
4- "description" : " HTML5 Pointerlock lib " ,
3+ "version" : " 0.2.0 " ,
4+ "description" : " HTML5 Pointer Lock Lib " ,
55 "main" : " src/index.js" ,
66 "scripts" : {
77 "start" : " http-server ./" ,
1818 "jspm" : " ^0.16.47"
1919 },
2020 "jspm" : {
21- "jspmPackage" : true ,
22- "main" : " src/index.js" ,
2321 "dependencies" : {
2422 "events" : " github:jspm/nodelibs-events@^0.1.1" ,
2523 "jquery" : " npm:jquery@^3.1.1"
Original file line number Diff line number Diff line change @@ -7,19 +7,20 @@ export default class PointerLock extends EventEmitter {
77 constructor ( element ) {
88 super ( ) ;
99
10- this . element = element ;
10+ this . $element = $ ( element ) ;
11+ this . element = this . $element . get ( 0 ) ;
12+ this . isLocked = this . getLockState ( ) ;
1113
1214 $ ( document ) . on ( "pointerlockchange mozpointerlockchange, webkitpointerlockchange" , this . pointerLockChange . bind ( this ) ) ;
1315 }
1416
17+ getLockState ( ) {
18+ return this . getPointerLockElement ( ) === this . element ;
19+ }
20+
1521 pointerLockChange ( ) {
16- if ( this . getPointerLockElement ( ) === this . element ) {
17- this . isLocked = true ;
18- this . emit ( "change" , this . isLocked ) ;
19- } else {
20- this . isLocked = false ;
21- this . emit ( "change" , this . isLocked ) ;
22- }
22+ this . isLocked = this . getLockState ( ) ;
23+ this . emit ( "change" , this . isLocked ) ;
2324 }
2425
2526 requestPointerLock ( ) {
@@ -32,6 +33,14 @@ export default class PointerLock extends EventEmitter {
3233 }
3334 }
3435
36+ exitPointerLock ( ) {
37+ if ( document . exitPointerLock ) {
38+ document . exitPointerLock ( ) ;
39+ } else if ( document . mozExitPointerLock ) {
40+ document . mozExitPointerLock ( ) ;
41+ }
42+ }
43+
3544 getPointerLockElement ( ) {
3645 return document . pointerLockElement ||
3746 document . mozPointerLockElement ||
You can’t perform that action at this time.
0 commit comments