Impress.js
Introduction
Impress.js is a JavaScript library that allows creating "Prezi-style" presentations.
“impress.js is a presentation framework build upon the powerful CSS3 transformations and transitions on modern web browsers. Bartek Szopka is the creator of this amazing framework. According to the creator, the idea came to him while he was playing with CSS transformations. Prezi.com was the source that got him inspired.” (Ratnayake, 2013: 8)
Impress.js relies on CSS Transforms Level 1 and only will work in modern browser (compatibility table).
First steps
Files
After downloading and unpacking, you will see a directory structure like this (Aug 25 2013):
bartaz-impress.js-1e15c05 (directory)
- README.md
- apple-touch-icon.png
- css (directory)
- impress-demo.css
- favicon.png
- index.html
- js (directory)
- impress.js
As you will see, there just two important files
- impress.js - the library
- index.html - An HTML demo file that also includes the documentation if you look at the source.
The files impress-demo.css, favicon.png and apple-touch-icon.png are not needed and are not used by the index.html demo/manual file.
We suggest starting to learn impress.js by modifying the index.html file.
Therefore, we suggest creating a copy of index.html
and then opening it in a text editor (preferably one that understands HTML). Also consider renaming the original index.html file.
Structure of impress.js presentation
The JavaScript code will rely on the following structure. Your HTML file must include at the least the following:
- A big
div id="impress">
wrapper that will include all your slide - Each slide is defined by
div class="step slide">
wrapper. The div then can include an id as well as positioning, scaling and rotation information, all encode through HTML attributes.
<div id="impress">
<div class="step slide" data-x="0" data-y="-1500">
<q>Content of slide 1</q>
</div>
<div id="tiny" class="step" data-x="2825" data-y="2325" data-z="-3000" data-rotate="300" data-scale="1">
<p>Content of slide 2</p>
</div>
</div>
Tables of impress.js attributes
Attribute | Description | Values | Default value | Example |
---|---|---|---|---|
data-x | Center of slide on x-axis | pixels | 0 | data-x ="-1000" |
data-y | Center of slide on y-axis | pixels | 0 | |
data-z | Center of slide on z-axis | pixels | 0 | |
data-rotate-x | Rotation of the slide around x-axis | degrees | 0 | |
data-rotate-y | Rotation of the slide around y-axis | degrees | 0 | |
data-rotate-z (or data-rotate) | Rotation of the slide around z-axis | degrees | 0 | data-rotate="270" |
data-scale | Scaling of slide | Number | 1 | data-scale = "10" |
Transition mechanics
We looking at the page, impress.js assigns one three classes: `future`, `present` and `past` to each slide. Only one, i.e. the one shown, is present. At presentation start, all slides are future. Each visited slide becomes past
Links
- Official
- Impress.js homepage
- impress.js tutorials and other learning resources (links)
- Examples and demos (links)
- Source code It's the documentation
- Tutorials
- How To Use Impress.Js, Posted on January 4, 2012
- No More Powerpoint I Have Impress.js, Paulund, Updated: March 31st, 2013
- CSS transformation (on which impress.js is based)
- CSS Transforms Level 1, W3C working draft
- CSS transform documentation at mozilla.org.
- Browser compatibility table at mozilla.org
- Books
- Rakhitha Nimesh Ratnayake (2013), Building Impressive Presentations with impress.js, Packt Publishers, ISBN 1849696489