rolled back to classList, promoting poyfill in readme
parent
9736509bae
commit
a30cdaaffc
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
A CSS 3D slideshow tool for quickly creating good looking HTML presentations. Doesn't _rely_ on any external libraries but [highlight.js](http://softwaremaniacs.org/soft/highlight/en/description/) is included by default for code highlighting.
|
A CSS 3D slideshow tool for quickly creating good looking HTML presentations. Doesn't _rely_ on any external libraries but [highlight.js](http://softwaremaniacs.org/soft/highlight/en/description/) is included by default for code highlighting.
|
||||||
|
|
||||||
Note that this requires a browser with support for CSS 3D transforms and classList. If CSS 3D support is not detected, the presentation will degrade to less exciting 2D transitions.
|
Note that this requires a browser with support for CSS 3D transforms and ``classList``. If CSS 3D support is not detected, the presentation will degrade to less exciting 2D transitions. You could also use a polyfill for ``classList`` to make this work in < iOS 5 and < Safari 5.1, [here's one](https://github.com/remy/polyfills/blob/master/classList.js) from [@remy](https://github.com/remy).
|
||||||
|
|
||||||
Curious about how this looks in action? [Check out the demo page](http://lab.hakim.se/reveal-js/).
|
Curious about how this looks in action? [Check out the demo page](http://lab.hakim.se/reveal-js/).
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@ Curious about how this looks in action? [Check out the demo page](http://lab.hak
|
||||||
- Slides were moved one level deeper, into #reveal .slides
|
- Slides were moved one level deeper, into #reveal .slides
|
||||||
- Controls and progress bar were moved into #reveal
|
- Controls and progress bar were moved into #reveal
|
||||||
- CSS is now much more explicit, rooted at #reveal, to prevent conflicts
|
- CSS is now much more explicit, rooted at #reveal, to prevent conflicts
|
||||||
|
- Config option for disabling updates to URL, defaults to true
|
||||||
|
- Anchors with image children no longer rotate in 3D on hover
|
||||||
|
|
||||||
### 1.1
|
### 1.1
|
||||||
|
|
||||||
|
|
50
js/reveal.js
50
js/reveal.js
|
@ -73,7 +73,7 @@
|
||||||
* - Controls and progress bar were moved into #reveal
|
* - Controls and progress bar were moved into #reveal
|
||||||
* - All CSS is now much more explicit, rooted at #reveal, to prevent conflicts
|
* - All CSS is now much more explicit, rooted at #reveal, to prevent conflicts
|
||||||
* - Config option for disabling updates to URL, defaults to true
|
* - Config option for disabling updates to URL, defaults to true
|
||||||
* - Removed dependency on classList
|
* - Fix 3D link hover for anchors containing images
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @author Hakim El Hattab | http://hakim.se
|
* @author Hakim El Hattab | http://hakim.se
|
||||||
|
@ -163,11 +163,11 @@ var Reveal = (function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.transition !== 'default' ) {
|
if( config.transition !== 'default' ) {
|
||||||
addClass( dom.wrapper, config.transition );
|
dom.wrapper.classList.add( config.transition );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.theme !== 'default' ) {
|
if( config.theme !== 'default' ) {
|
||||||
addClass( dom.wrapper, config.theme );
|
dom.wrapper.classList.add( config.theme );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.rollingLinks ) {
|
if( config.rollingLinks ) {
|
||||||
|
@ -308,7 +308,7 @@ var Reveal = (function(){
|
||||||
var node = nodes[i];
|
var node = nodes[i];
|
||||||
|
|
||||||
if( node.textContent && !node.querySelector( 'img' ) && ( !node.className || !hasClass( node, 'roll' ) ) ) {
|
if( node.textContent && !node.querySelector( 'img' ) && ( !node.className || !hasClass( node, 'roll' ) ) ) {
|
||||||
addClass( node, 'roll' );
|
node.classList.add( 'roll' );
|
||||||
node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>';
|
node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -323,7 +323,7 @@ var Reveal = (function(){
|
||||||
* can't be improved.
|
* can't be improved.
|
||||||
*/
|
*/
|
||||||
function activateOverview() {
|
function activateOverview() {
|
||||||
addClass( dom.wrapper, 'overview' );
|
dom.wrapper.classList.add( 'overview' );
|
||||||
|
|
||||||
var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
|
var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ var Reveal = (function(){
|
||||||
hslide.style.OTransform = htransform;
|
hslide.style.OTransform = htransform;
|
||||||
hslide.style.transform = htransform;
|
hslide.style.transform = htransform;
|
||||||
|
|
||||||
if( !hasClass( hslide, 'stack' ) ) {
|
if( !hslide.classList.contains( 'stack' ) ) {
|
||||||
// Navigate to this slide on click
|
// Navigate to this slide on click
|
||||||
hslide.addEventListener( 'click', onOverviewSlideClicked, true );
|
hslide.addEventListener( 'click', onOverviewSlideClicked, true );
|
||||||
}
|
}
|
||||||
|
@ -370,7 +370,7 @@ var Reveal = (function(){
|
||||||
* active slide.
|
* active slide.
|
||||||
*/
|
*/
|
||||||
function deactivateOverview() {
|
function deactivateOverview() {
|
||||||
removeClass( dom.wrapper, 'overview' );
|
dom.wrapper.classList.remove( 'overview' );
|
||||||
|
|
||||||
var slides = Array.prototype.slice.call( document.querySelectorAll( '#reveal .slides section' ) );
|
var slides = Array.prototype.slice.call( document.querySelectorAll( '#reveal .slides section' ) );
|
||||||
|
|
||||||
|
@ -397,7 +397,7 @@ var Reveal = (function(){
|
||||||
* false otherwise
|
* false otherwise
|
||||||
*/
|
*/
|
||||||
function overviewIsActive() {
|
function overviewIsActive() {
|
||||||
return hasClass( dom.wrapper, 'overview' );
|
return dom.wrapper.classList.contains( 'overview' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -463,7 +463,7 @@ var Reveal = (function(){
|
||||||
|
|
||||||
// If this element contains vertical slides
|
// If this element contains vertical slides
|
||||||
if( slide.querySelector( 'section' ) ) {
|
if( slide.querySelector( 'section' ) ) {
|
||||||
addClass( slide, 'stack' );
|
slide.classList.add( 'stack' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -508,13 +508,13 @@ var Reveal = (function(){
|
||||||
|
|
||||||
// Remove the 'enabled' class from all directions
|
// Remove the 'enabled' class from all directions
|
||||||
[ dom.controlsLeft, dom.controlsRight, dom.controlsUp, dom.controlsDown ].forEach( function( node ) {
|
[ dom.controlsLeft, dom.controlsRight, dom.controlsUp, dom.controlsDown ].forEach( function( node ) {
|
||||||
removeClass( node, 'enabled' );
|
node.classList.remove( 'enabled' );
|
||||||
} )
|
} )
|
||||||
|
|
||||||
if( routes.left ) addClass( dom.controlsLeft, 'enabled' );
|
if( routes.left ) dom.controlsLeft.classList.add( 'enabled' );
|
||||||
if( routes.right ) addClass( dom.controlsRight, 'enabled' );
|
if( routes.right ) dom.controlsRight.classList.add( 'enabled' );
|
||||||
if( routes.up ) addClass( dom.controlsUp, 'enabled' );
|
if( routes.up ) dom.controlsUp.classList.add( 'enabled' );
|
||||||
if( routes.down ) addClass( dom.controlsDown, 'enabled' );
|
if( routes.down ) dom.controlsDown.classList.add( 'enabled' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -576,7 +576,7 @@ var Reveal = (function(){
|
||||||
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
||||||
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
||||||
if( verticalFragments.length ) {
|
if( verticalFragments.length ) {
|
||||||
addClass( verticalFragments[0], 'visible' );
|
verticalFragments[0].classList.add( 'visible' );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -584,7 +584,7 @@ var Reveal = (function(){
|
||||||
else {
|
else {
|
||||||
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
||||||
if( horizontalFragments.length ) {
|
if( horizontalFragments.length ) {
|
||||||
addClass( horizontalFragments[0], 'visible' );
|
horizontalFragments[0].classList.add( 'visible' );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -603,7 +603,7 @@ var Reveal = (function(){
|
||||||
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
||||||
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
||||||
if( verticalFragments.length ) {
|
if( verticalFragments.length ) {
|
||||||
removeClass( verticalFragments[ verticalFragments.length - 1 ], 'visible' );
|
verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -611,27 +611,13 @@ var Reveal = (function(){
|
||||||
else {
|
else {
|
||||||
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
||||||
if( horizontalFragments.length ) {
|
if( horizontalFragments.length ) {
|
||||||
removeClass( horizontalFragments[ horizontalFragments.length - 1 ], 'visible' );
|
horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function hasClass( node, klass ) {
|
|
||||||
return !!node.className.match( klass );
|
|
||||||
}
|
|
||||||
|
|
||||||
function addClass( node, klass ) {
|
|
||||||
if( !hasClass( node, klass ) ) {
|
|
||||||
node.className += ' ' + klass;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeClass( node, klass ) {
|
|
||||||
node.className = node.className.replace( klass, '' );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a navigation to the specified indices.
|
* Triggers a navigation to the specified indices.
|
||||||
|
|
Loading…
Reference in New Issue