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