Skip to content
Snippets Groups Projects
reveal.js 82 KiB
Newer Older
 * reveal.js
 * http://lab.hakim.se/reveal-js
 * MIT licensed
Hakim El Hattab's avatar
Hakim El Hattab committed
 * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
Hakim El Hattab's avatar
Hakim El Hattab committed
 */
	var SLIDES_SELECTOR = '.reveal .slides section',
		HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section',
		VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
		HOME_SLIDE_SELECTOR = '.reveal .slides>section:first-child',
Hakim El Hattab's avatar
Hakim El Hattab committed

		// Configurations 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,
			maxScale: 1.0,
			// Display controls in the bottom right corner
			controls: true,

			// Display a presentation progress bar
			progress: true,

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

			// Enable the slide overview mode
			overview: true,

			// Vertical centring 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

			// 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
			// Stop auto-sliding after user input
			autoSlideStoppable: false,

			// 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,

			// Focuses body when page changes visiblity to ensure keyboard shortcuts work
			focusBodyOnPageVisiblityChange: true,

Joel Brandt's avatar
Joel Brandt committed
			// Theme (see /css/theme)
Joel Brandt's avatar
Joel Brandt committed
			transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
			// Transition speed
			transitionSpeed: 'default', // default/fast/slow

			// Transition style for full page slide backgrounds
			backgroundTransition: 'default', // default/linear/none
			// Parallax background image
			parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg"
			// Parallax background size
			parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px"
			// Number of slides away from the current that are visible
			viewDistance: 3,

			// Script dependencies to load
			dependencies: []
		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
		loaded = 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,

		// 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,

hakimel's avatar
hakimel committed
		// A delay used to activate the overview mode
		activateOverviewTimeout = 0,

hakimel's avatar
hakimel committed
		// A delay used to deactivate the overview mode
Joel Brandt's avatar
Joel Brandt committed
		deactivateOverviewTimeout = 0,

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

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

		// Auto slide properties
		autoSlidePlayer,
		autoSlideTimeout = 0,
		autoSlideStartTime = -1,
		autoSlidePaused = false,
		// Holds information about the currently ongoing touch input
		touch = {
			startX: 0,
			startY: 0,
			startSpan: 0,
			startCount: 0,
			captured: false,
Hakim El Hattab's avatar
Hakim El Hattab committed
	/**
	 * Starts up the presentation if the client is capable.
Hakim El Hattab's avatar
Hakim El Hattab committed
	 */
	function initialize( options ) {
		if( !features.transforms2d && !features.transforms3d ) {
			document.body.setAttribute( 'class', 'no-transforms' );

			// If the browser doesn't support core features we won't be
			// using JavaScript to control the presentation
		// Force a layout when the whole page, incl fonts, has loaded
		window.addEventListener( 'load', layout, false );

		// Copy options over to our config object
		extend( config, options );
		extend( config, Reveal.getQueryHash() );
		// Hide the address bar in mobile browsers
		hideAddressBar();

Loading
Loading full blame...