#jqPresentation
jqPresentation is a jQuery plugin that creates PowerPoint-style slideshows from web pages.
#Features
- Reads semantic, standards-compliant HTML
- Supports jQuery UI animations
- Tracks current position in the address bar for browser navigation support
- Short Demo
- Long Demo
#Controls
- Press Up or Down to navigate by one item
- Press Page Up or Page Down to navigate by one slide
- Press Home or End to jump the the beginning or the end of the entire presentation
- Use the scroll wheel to navigate by one item (requires mousewheel plugin)
#Dependencies
##Optional:
- jQuery UI effects (for additional item animations)
- mousewheel plugin (for scroll wheel navigation)
#Instructions Use the following markup:
<article class="Presentation">
<section class="Slide">
<h1>Slide Title</h1>
<p class="Item">
This element will slide down when you click.
</p>
</section>
<section class="Slide">
...
</section>
</article>
Tag names don't matter; use whatever elements you like. The contents of each slide also don't matter; slides can hold whatever you like. By convention, all slides should have an <h1>
containing a slide title; the standard (blue) theme integrates the slide title into the slide design.
To create sequential animations within slides, add class="Item"
to elements in the slide. All Item
s will be hidden when the slide is first entered, and will appear one by one as you navigate forwards.
After creating your markup, call
$('.Presentation').presentation();
If you add an ID to a slide or item, navigating to YourPage#YourID
will automatically jump to that point.
If you use the SyntaxHighlighter script, you must include the following compatibility hack for jQuery:
//http://blog.slaks.net/2011/09/xregexp-breaks-jquery-animations.html
if (XRegExp) {
var xExec = RegExp.prototype.exec;
RegExp.prototype.exec = function (str) {
if (!str.slice)
str = String(str);
return xExec.call(this, str);
};
}
You may also want my SyntaxHighlighter theme to match my standard blue presentation theme.
#Item Animations
You can apply different animations to items by setting the data-animation
attribute (case-insensitive). jqPresentation includes two animations: fade
and slideDown
. If jQuery UI is present, all of its effects are also available as animations.
You can create a custom animation like this:
Presentation.animations.customeffect = {
show: function(elem, callback) { ... },
hide: function(elem, callback) { ... }
);
The effect name must be lower case. elem
is a jQuery object containing a single element to animate, and callback
must be called after the animation is complete.
A sample custom animation can be found at the end of the Introducing jQuery presentation.
#License Dual licensed under the MIT and GPL licenses, just like jQuery