fit-text helper now triggers lazyily when slide enters view distance
This commit is contained in:
parent
f231c53b9c
commit
aa6677911c
@ -16,6 +16,12 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Text that auto-fits it's container
|
||||||
|
.reveal .r-fit-text {
|
||||||
|
display: inline-block; // https://github.com/rikschennink/fitty#performance
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
// Stack multiple elements on top of each other
|
// Stack multiple elements on top of each other
|
||||||
.reveal .r-stack {
|
.reveal .r-stack {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
2
dist/reveal.css
vendored
2
dist/reveal.css
vendored
File diff suppressed because one or more lines are too long
2
dist/reveal.esm.js
vendored
2
dist/reveal.esm.js
vendored
File diff suppressed because one or more lines are too long
2
dist/reveal.js
vendored
2
dist/reveal.js
vendored
File diff suppressed because one or more lines are too long
@ -2,6 +2,8 @@ import { HORIZONTAL_SLIDES_SELECTOR, VERTICAL_SLIDES_SELECTOR } from '../utils/c
|
|||||||
import { extend, queryAll, closest } from '../utils/util.js'
|
import { extend, queryAll, closest } from '../utils/util.js'
|
||||||
import { isMobile } from '../utils/device.js'
|
import { isMobile } from '../utils/device.js'
|
||||||
|
|
||||||
|
import fitty from 'fitty';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles loading, unloading and playback of slide
|
* Handles loading, unloading and playback of slide
|
||||||
* content such as images, videos and iframes.
|
* content such as images, videos and iframes.
|
||||||
@ -159,6 +161,19 @@ export default class SlideContent {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Autosize text with the r-fit-text class based on the
|
||||||
|
// size of its container. This needs to happen after the
|
||||||
|
// slide is visible in order to measure the text.
|
||||||
|
Array.from( document.querySelectorAll( '.r-fit-text:not([data-fitted])' ) ).forEach( element => {
|
||||||
|
element.dataset.fitted = '';
|
||||||
|
fitty( element, {
|
||||||
|
minSize: 24,
|
||||||
|
maxSize: this.Reveal.getConfig().height * 0.8,
|
||||||
|
observeMutations: false,
|
||||||
|
observeWindow: false
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
11
js/reveal.js
11
js/reveal.js
@ -25,8 +25,6 @@ import {
|
|||||||
POST_MESSAGE_METHOD_BLACKLIST
|
POST_MESSAGE_METHOD_BLACKLIST
|
||||||
} from './utils/constants.js'
|
} from './utils/constants.js'
|
||||||
|
|
||||||
import fitty from 'fitty';
|
|
||||||
|
|
||||||
// The reveal.js version
|
// The reveal.js version
|
||||||
export const VERSION = '4.0.2';
|
export const VERSION = '4.0.2';
|
||||||
|
|
||||||
@ -283,15 +281,6 @@ export default function( revealElement, options ) {
|
|||||||
dom.statusElement = createStatusElement();
|
dom.statusElement = createStatusElement();
|
||||||
|
|
||||||
dom.wrapper.setAttribute( 'role', 'application' );
|
dom.wrapper.setAttribute( 'role', 'application' );
|
||||||
|
|
||||||
// The r-fit-text helper resizes text to be as large as
|
|
||||||
// possible within its given container
|
|
||||||
fitty( '.r-fit-text', {
|
|
||||||
minSize: 24,
|
|
||||||
maxSize: config.height * 0.8,
|
|
||||||
observeMutations: false,
|
|
||||||
observeWindow: false
|
|
||||||
} );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user