Skip to content
Snippets Groups Projects
reveal.js 121 KiB
Newer Older
 * reveal.js
 * http://lab.hakim.se/reveal-js
 * MIT licensed
Hakim El Hattab's avatar
Hakim El Hattab committed
 * Copyright (C) 2015 Hakim El Hattab, http://hakim.se
Hakim El Hattab's avatar
Hakim El Hattab committed
 */
Hakim El Hattab's avatar
Hakim El Hattab committed
(function( root, factory ) {
	if( typeof define === 'function' && define.amd ) {
		// AMD. Register as an anonymous module.
Hakim El Hattab's avatar
Hakim El Hattab committed
		define( function() {
			root.Reveal = factory();
			return root.Reveal;
Hakim El Hattab's avatar
Hakim El Hattab committed
		} );
	} else if( typeof exports === 'object' ) {
		// Node. Does not work with strict CommonJS.
		module.exports = factory();
	} else {
Hakim El Hattab's avatar
Hakim El Hattab committed
		// Browser globals.
		root.Reveal = factory();
	}
Hakim El Hattab's avatar
Hakim El Hattab committed
}( this, function() {
	var Reveal;

	var SLIDES_SELECTOR = '.slides section',
		HORIZONTAL_SLIDES_SELECTOR = '.slides>section',
		VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section',
		HOME_SLIDE_SELECTOR = '.slides>section:first-of-type',
Hakim El Hattab's avatar
Hakim El Hattab committed

Hakim El Hattab's avatar
Hakim El Hattab committed
		// Configuration defaults, can be overridden at initialization time
			// The "normal" size of the presentation, aspect ratio will be preserved
			// when the presentation is scaled to fit different resolutions
			width: 960,
			height: 700,
			// Factor of the display size that should remain empty around the content
			// Bounds for smallest/largest possible scale to apply to content
			minScale: 0.2,
			// Display controls in the bottom right corner
			controls: true,
			// Display the page number of the current slide
			slideNumber: false,

			// Push each slide change to the browser history
			// Enable keyboard shortcuts for navigation
			keyboard: true,

			// Optional function that blocks keyboard events when retuning false
			keyboardCondition: null,

			// Enable the slide overview mode
			overview: true,

			// Vertical centering of slides
			// Enables touch navigation on devices with touch input
			touch: true,

			// Change the presentation direction to be RTL
			// Turns fragments on and off globally
			fragments: true,

Hakim El Hattab's avatar
Hakim El Hattab committed
			// Flags if the presentation is running in an embedded mode,
			// i.e. contained within a limited portion of the screen
Hakim El Hattab's avatar
Hakim El Hattab committed

			// Flags if we should show a help overlay when the questionmark
			// key is pressed
			help: true,

			// Flags if it should be possible to pause the presentation (blackout)
			pause: true,

			// Number of milliseconds between automatically proceeding to the
			// next slide, disabled when set to 0, this value can be overwritten
			// by using a data-autoslide attribute on your slides
			// Apply a 3D roll to links on hover
			rollingLinks: false,

			// Hides the address bar on mobile devices
			hideAddressBar: true,

			// Opens links in an iframe preview overlay
			previewLinks: false,

			// Exposes the reveal.js API through window.postMessage
			// Dispatches all reveal.js events to the parent window through postMessage
			postMessageEvents: false,

			// Focuses body when page changes visiblity to ensure keyboard shortcuts work
Hakim El Hattab's avatar
Hakim El Hattab committed
			focusBodyOnPageVisibilityChange: true,
			transition: 'slide', // none/fade/slide/convex/concave/zoom
			// Transition speed
			transitionSpeed: 'default', // default/fast/slow

			// Transition style for full page slide backgrounds
			backgroundTransition: 'fade', // none/fade/slide/convex/concave/zoom
			// Parallax background image
			parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg"
			// Parallax background size
			parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px"
			// Amount of pixels to move the parallax background per slide step
			parallaxBackgroundHorizontal: null,
			parallaxBackgroundVertical: null,
			// Number of slides away from the current that are visible
			viewDistance: 3,

			// Script dependencies to load
		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
		loaded = false,

		// Flags if the overview mode is currently active
		overview = false,

		// The horizontal and vertical index of the currently active slide

		// The previous and current slide HTML elements
		previousSlide,
		currentSlide,

		// Slides may hold a data-state attribute which we pick up and apply
		// as a class to the body. This list contains the combined state of
		// The current scale of the presentation (see width/height config)
		scale = 1,

		// CSS transform that is currently applied to the slides container,
		// split into two groups
		slidesTransform = { layout: '', overview: '' },
		// Cached references to DOM elements
		// Features supported by the browser, see #checkCapabilities()
		features = {},

		// Client is a mobile device, see #checkCapabilities()
		isMobileDevice,
		// Throttles mouse wheel navigation
		lastMouseWheelStep = 0,

		// Delays updates to the URL due to a Chrome thumbnailer bug
		writeURLTimeout = 0,

		// Flags if the interaction event listeners are bound
		eventsAreBound = false,

		// The current auto-slide duration
		autoSlide = 0,

		// Auto slide properties
Loading
Loading full blame...