Skip to content
Snippets Groups Projects
Commit a30cdaaf authored by Hakim El Hattab's avatar Hakim El Hattab
Browse files

rolled back to classList, promoting poyfill in readme

parent 9736509b
No related branches found
No related tags found
No related merge requests found
......@@ -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.
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/).
......@@ -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
- Controls and progress bar were moved into #reveal
- 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
......
......@@ -73,7 +73,7 @@
* - Controls and progress bar were moved into #reveal
* - All CSS is now much more explicit, rooted at #reveal, to prevent conflicts
* - 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
......@@ -163,11 +163,11 @@ var Reveal = (function(){
}
if( config.transition !== 'default' ) {
addClass( dom.wrapper, config.transition );
dom.wrapper.classList.add( config.transition );
}
if( config.theme !== 'default' ) {
addClass( dom.wrapper, config.theme );
dom.wrapper.classList.add( config.theme );
}
if( config.rollingLinks ) {
......@@ -308,7 +308,7 @@ var Reveal = (function(){
var node = nodes[i];
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>';
}
};
......@@ -323,7 +323,7 @@ var Reveal = (function(){
* can't be improved.
*/
function activateOverview() {
addClass( dom.wrapper, 'overview' );
dom.wrapper.classList.add( 'overview' );
var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
......@@ -339,7 +339,7 @@ var Reveal = (function(){
hslide.style.OTransform = htransform;
hslide.style.transform = htransform;
if( !hasClass( hslide, 'stack' ) ) {
if( !hslide.classList.contains( 'stack' ) ) {
// Navigate to this slide on click
hslide.addEventListener( 'click', onOverviewSlideClicked, true );
}
......@@ -370,7 +370,7 @@ var Reveal = (function(){
* active slide.
*/
function deactivateOverview() {
removeClass( dom.wrapper, 'overview' );
dom.wrapper.classList.remove( 'overview' );
var slides = Array.prototype.slice.call( document.querySelectorAll( '#reveal .slides section' ) );
......@@ -397,7 +397,7 @@ var Reveal = (function(){
* false otherwise
*/
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( slide.querySelector( 'section' ) ) {
addClass( slide, 'stack' );
slide.classList.add( 'stack' );
}
}
}
......@@ -508,13 +508,13 @@ var Reveal = (function(){
// Remove the 'enabled' class from all directions
[ 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.right ) addClass( dom.controlsRight, 'enabled' );
if( routes.up ) addClass( dom.controlsUp, 'enabled' );
if( routes.down ) addClass( dom.controlsDown, 'enabled' );
if( routes.left ) dom.controlsLeft.classList.add( 'enabled' );
if( routes.right ) dom.controlsRight.classList.add( 'enabled' );
if( routes.up ) dom.controlsUp.classList.add( 'enabled' );
if( routes.down ) dom.controlsDown.classList.add( 'enabled' );
}
/**
......@@ -576,7 +576,7 @@ var Reveal = (function(){
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
if( verticalFragments.length ) {
addClass( verticalFragments[0], 'visible' );
verticalFragments[0].classList.add( 'visible' );
return true;
}
}
......@@ -584,7 +584,7 @@ var Reveal = (function(){
else {
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
if( horizontalFragments.length ) {
addClass( horizontalFragments[0], 'visible' );
horizontalFragments[0].classList.add( 'visible' );
return true;
}
}
......@@ -603,7 +603,7 @@ var Reveal = (function(){
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
if( verticalFragments.length ) {
removeClass( verticalFragments[ verticalFragments.length - 1 ], 'visible' );
verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
return true;
}
}
......@@ -611,27 +611,13 @@ var Reveal = (function(){
else {
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
if( horizontalFragments.length ) {
removeClass( horizontalFragments[ horizontalFragments.length - 1 ], 'visible' );
horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
return true;
}
}
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.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment