IE11 Support

Added unprefixed touch-action CSS attribute
Added unprefixed pointer events handlers hooks
This commit is contained in:
olivierbloch 2013-10-01 14:06:55 -07:00
commit e608dafaf1
5 changed files with 49 additions and 5 deletions

View file

@ -820,6 +820,23 @@ You can change the port by using `grunt serve --port 8001`.
- **lib/** All other third party assets (JavaScript, CSS, fonts) - **lib/** All other third party assets (JavaScript, CSS, fonts)
### Contributing
Please keep the [issue tracker](github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. If you are reporting a bug make sure to include information about which browser and operating system you are using as well as the necessary steps to reproduce the issue.
If you have personal support questions use [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
#### Pull requests
- Should follow the coding style
- Tabs to indent
- Single-quoted strings
- No space between function name and opening argument parenthesis
- One space after opening and before closing parenthesis
- Should be made towards the **dev branch**
- Should be submitted from a feature/topic branch (not your master)
## License ## License

View file

@ -487,6 +487,7 @@ body {
height: 100%; height: 100%;
-ms-touch-action: none; -ms-touch-action: none;
touch-action: none;
} }
.reveal .slides { .reveal .slides {

4
css/reveal.min.css vendored

File diff suppressed because one or more lines are too long

View file

@ -595,11 +595,18 @@ var Reveal = (function(){
dom.wrapper.addEventListener( 'touchend', onTouchEnd, false ); dom.wrapper.addEventListener( 'touchend', onTouchEnd, false );
// Support pointer-style touch interaction as well // Support pointer-style touch interaction as well
// IE 10 uses prefixed version of pointer events
if( window.navigator.msPointerEnabled ) { if( window.navigator.msPointerEnabled ) {
dom.wrapper.addEventListener( 'MSPointerDown', onPointerDown, false ); dom.wrapper.addEventListener( 'MSPointerDown', onPointerDown, false );
dom.wrapper.addEventListener( 'MSPointerMove', onPointerMove, false ); dom.wrapper.addEventListener( 'MSPointerMove', onPointerMove, false );
dom.wrapper.addEventListener( 'MSPointerUp', onPointerUp, false ); dom.wrapper.addEventListener( 'MSPointerUp', onPointerUp, false );
} }
// IE 11 uses un-prefixed version of pointer events
if( window.navigator.pointerEnabled ) {
dom.wrapper.addEventListener( 'pointerdown', onPointerDown, false );
dom.wrapper.addEventListener( 'pointermove', onPointerMove, false );
dom.wrapper.addEventListener( 'pointerup', onPointerUp, false );
}
} }
if( config.keyboard ) { if( config.keyboard ) {
@ -636,11 +643,18 @@ var Reveal = (function(){
dom.wrapper.removeEventListener( 'touchmove', onTouchMove, false ); dom.wrapper.removeEventListener( 'touchmove', onTouchMove, false );
dom.wrapper.removeEventListener( 'touchend', onTouchEnd, false ); dom.wrapper.removeEventListener( 'touchend', onTouchEnd, false );
// IE10
if( window.navigator.msPointerEnabled ) { if( window.navigator.msPointerEnabled ) {
dom.wrapper.removeEventListener( 'MSPointerDown', onPointerDown, false ); dom.wrapper.removeEventListener( 'MSPointerDown', onPointerDown, false );
dom.wrapper.removeEventListener( 'MSPointerMove', onPointerMove, false ); dom.wrapper.removeEventListener( 'MSPointerMove', onPointerMove, false );
dom.wrapper.removeEventListener( 'MSPointerUp', onPointerUp, false ); dom.wrapper.removeEventListener( 'MSPointerUp', onPointerUp, false );
} }
// IE11
if( window.navigator.pointerEnabled ) {
dom.wrapper.removeEventListener( 'pointerdown', onPointerDown, false );
dom.wrapper.removeEventListener( 'pointermove', onPointerMove, false );
dom.wrapper.removeEventListener( 'pointerup', onPointerUp, false );
}
if ( config.progress && dom.progress ) { if ( config.progress && dom.progress ) {
dom.progress.removeEventListener( 'click', onProgressClicked, false ); dom.progress.removeEventListener( 'click', onProgressClicked, false );
@ -2557,7 +2571,7 @@ var Reveal = (function(){
*/ */
function onPointerDown( event ) { function onPointerDown( event ) {
if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { if(( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) || ( event.pointerType === "touch" )) {
event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
onTouchStart( event ); onTouchStart( event );
} }
@ -2569,7 +2583,7 @@ var Reveal = (function(){
*/ */
function onPointerMove( event ) { function onPointerMove( event ) {
if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { if(( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) || ( event.pointerType === "touch" )) {
event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
onTouchMove( event ); onTouchMove( event );
} }
@ -2581,7 +2595,7 @@ var Reveal = (function(){
*/ */
function onPointerUp( event ) { function onPointerUp( event ) {
if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { if(( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) || ( event.pointerType === "touch" )) {
event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
onTouchEnd( event ); onTouchEnd( event );
} }

8
js/reveal.min.js vendored

File diff suppressed because one or more lines are too long