fix auto-animate bug on centered slides

This commit is contained in:
Hakim El Hattab 2020-05-08 20:33:28 +02:00
parent ab273a19f2
commit 3a032a836a
4 changed files with 22 additions and 16 deletions

2
dist/reveal.esm.js vendored

File diff suppressed because one or more lines are too long

2
dist/reveal.js vendored

File diff suppressed because one or more lines are too long

View File

@ -162,12 +162,13 @@
</div>
<script src="../dist/reveal.es5.js"></script>
<script src="../dist/reveal.js"></script>
<script src="../dist/plugin/highlight.js"></script>
<script>
Reveal.initialize({
center: true,
hash: true
hash: true,
plugins: [ RevealHighlight ]
});
</script>

View File

@ -331,6 +331,8 @@ export default class AutoAnimate {
*/
getAutoAnimatableProperties( direction, element, elementOptions ) {
let config = this.Reveal.getConfig();
let properties = { styles: [] };
// Position and size
@ -343,17 +345,20 @@ export default class AutoAnimate {
bounds = elementOptions.measure( element );
}
else {
let scale = this.Reveal.getScale();
bounds = {
x: element.offsetLeft * scale,
y: element.offsetTop * scale,
width: element.offsetWidth * scale,
height: element.offsetHeight * scale
};
// More precise, but breaks when used in combination
// with zoom for scaling the deck ¯\_(ツ)_/¯
// bounds = element.getBoundingClientRect();
if( config.center ) {
// More precise, but breaks when used in combination
// with zoom for scaling the deck ¯\_(ツ)_/¯
bounds = element.getBoundingClientRect();
}
else {
let scale = this.Reveal.getScale();
bounds = {
x: element.offsetLeft * scale,
y: element.offsetTop * scale,
width: element.offsetWidth * scale,
height: element.offsetHeight * scale
};
}
}
properties.x = bounds.x;
@ -365,7 +370,7 @@ export default class AutoAnimate {
const computedStyles = getComputedStyle( element );
// CSS styles
( elementOptions.styles || this.Reveal.getConfig().autoAnimateStyles ).forEach( style => {
( elementOptions.styles || config.autoAnimateStyles ).forEach( style => {
let value;
// `style` is either the property name directly, or an object