improve controls on touch devices
This commit is contained in:
		| @@ -376,6 +376,16 @@ body { | ||||
| .reveal.has-light-background .controls { | ||||
|   color: #000; } | ||||
|  | ||||
| .reveal.no-hover .controls .controls-arrow:hover:before, | ||||
| .reveal.no-hover .controls .controls-arrow:active:before { | ||||
|   -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg); | ||||
|           transform: translateX(0.5em) translateY(1.55em) rotate(45deg); } | ||||
|  | ||||
| .reveal.no-hover .controls .controls-arrow:hover:after, | ||||
| .reveal.no-hover .controls .controls-arrow:active:after { | ||||
|   -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); | ||||
|           transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); } | ||||
|  | ||||
| @media screen and (min-width: 500px) { | ||||
|   .reveal .controls[data-controls-layout="edges"] { | ||||
|     top: 0; | ||||
|   | ||||
| @@ -251,23 +251,23 @@ $controlArrowSize: 3.6em; | ||||
| $controlArrowSpacing: 1.4em; | ||||
| $controlArrowLength: 2.6em; | ||||
| $controlArrowThickness: 0.5em; | ||||
| $controlsArrowAngle: 45deg; | ||||
| $controlsArrowAngleHover: 40deg; | ||||
| $controlsArrowAngleActive: 36deg; | ||||
|  | ||||
| @mixin controlsArrowTransform( $angle ) { | ||||
| 	&:before { | ||||
| 		transform: translateX(($controlArrowSize - $controlArrowLength)/2) translateY(($controlArrowSize - $controlArrowThickness)/2) rotate( $angle ); | ||||
| 	} | ||||
|  | ||||
| 	&:after { | ||||
| 		transform: translateX(($controlArrowSize - $controlArrowLength)/2) translateY(($controlArrowSize - $controlArrowThickness)/2) rotate( -$angle ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| .reveal .controls { | ||||
| 	$angle: 45deg; | ||||
| 	$angleHover: 40deg; | ||||
| 	$angleActive: 36deg; | ||||
| 	$spacing: 12px; | ||||
|  | ||||
| 	@mixin arrowTransform( $angle ) { | ||||
| 		&:before { | ||||
| 			transform: translateX(($controlArrowSize - $controlArrowLength)/2) translateY(($controlArrowSize - $controlArrowThickness)/2) rotate( $angle ); | ||||
| 		} | ||||
|  | ||||
| 		&:after { | ||||
| 			transform: translateX(($controlArrowSize - $controlArrowLength)/2) translateY(($controlArrowSize - $controlArrowThickness)/2) rotate( -$angle ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	display: none; | ||||
| 	position: absolute; | ||||
| 	top: auto; | ||||
| @@ -323,14 +323,14 @@ $controlArrowThickness: 0.5em; | ||||
| 		width: $controlArrowSize; | ||||
| 		height: $controlArrowSize; | ||||
|  | ||||
| 		@include arrowTransform( $angle ); | ||||
| 		@include controlsArrowTransform( $controlsArrowAngle ); | ||||
|  | ||||
| 		&:hover { | ||||
| 			@include arrowTransform( $angleHover ); | ||||
| 			@include controlsArrowTransform( $controlsArrowAngleHover ); | ||||
| 		} | ||||
|  | ||||
| 		&:active { | ||||
| 			@include arrowTransform( $angleActive ); | ||||
| 			@include controlsArrowTransform( $controlsArrowAngleActive ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| @@ -438,14 +438,20 @@ $controlArrowThickness: 0.5em; | ||||
| 	bottom: $controlArrowSpacing; | ||||
| } | ||||
|  | ||||
| // Invert arrows based on background color | ||||
| .reveal.has-dark-background .controls { | ||||
| 	color: #fff; | ||||
| } | ||||
|  | ||||
| .reveal.has-light-background .controls { | ||||
| 	color: #000; | ||||
| } | ||||
|  | ||||
| // Disable active states on touch devices | ||||
| .reveal.no-hover .controls .controls-arrow:hover, | ||||
| .reveal.no-hover .controls .controls-arrow:active { | ||||
| 	@include controlsArrowTransform( $controlsArrowAngle ); | ||||
| } | ||||
|  | ||||
| // Edge aligned controls layout | ||||
| @media screen and (min-width: 500px) { | ||||
|  | ||||
|   | ||||
| @@ -523,6 +523,13 @@ | ||||
| 		// Prevent transitions while we're loading | ||||
| 		dom.slides.classList.add( 'no-transition' ); | ||||
|  | ||||
| 		if( isMobileDevice ) { | ||||
| 			dom.wrapper.classList.add( 'no-hover' ); | ||||
| 		} | ||||
| 		else { | ||||
| 			dom.wrapper.classList.remove( 'no-hover' ); | ||||
| 		} | ||||
|  | ||||
| 		// Background element | ||||
| 		dom.background = createSingletonNode( dom.wrapper, 'div', 'backgrounds', null ); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user