impressive explanation about browser support
This commit is contained in:
53
README.md
53
README.md
@@ -32,24 +32,55 @@ please contact me via GitHub or send me a pull request to updated `README.md` fi
|
|||||||
BROWSER SUPPORT
|
BROWSER SUPPORT
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Impress.js is developed with current webkit-based browsers in mind (Chrome,
|
### TL;DR;
|
||||||
Safari), but *should* work also in other browsers supporting CSS3 3D transforms
|
|
||||||
and transitions (Firefox, IE10).
|
Currently impress.js works fine in latest Chrome/Chromium browser, Safari 5.1 and Firefox 10
|
||||||
|
(to be released in January 2012). IE10 support is currently unknown, so let's assume it doesn't
|
||||||
|
work there. It also doesn't work in Opera.
|
||||||
|
|
||||||
|
As it was not developed with mobile browsers in mind, it currently doesn't work on
|
||||||
|
any mobile devices, including tablets.
|
||||||
|
|
||||||
|
### Still interested? Read more...
|
||||||
|
|
||||||
Additionally for the animations to run smoothly it's required to have hardware
|
Additionally for the animations to run smoothly it's required to have hardware
|
||||||
acceleration support in your browser. This depends on the browser, your operating
|
acceleration support in your browser. This depends on the browser, your operating
|
||||||
system and even kind of graphic hardware you have in your machine.
|
system and even kind of graphic hardware you have in your machine.
|
||||||
|
|
||||||
It's actively developed with newest Chromium and tested in Firefox Aurora.
|
|
||||||
|
|
||||||
I don't really expect it to run smoothly in non-webkit-based browser.
|
|
||||||
If it does, just let me know, I'll glad to hear that!
|
|
||||||
|
|
||||||
For browsers not supporting CSS3 3D transforms impress.js adds `impress-not-supported`
|
For browsers not supporting CSS3 3D transforms impress.js adds `impress-not-supported`
|
||||||
class on `#impress` element, so fallback styles can be applied.
|
class on `#impress` element, so fallback styles can be applied to make all the content accessible.
|
||||||
|
|
||||||
|
|
||||||
### Mobile
|
### Even more explanation and technical stuff
|
||||||
|
|
||||||
|
Let's put this straight -- wide browser support was (and is) not on top of my priority list for
|
||||||
|
impress.js. It's built on top of fresh technologies that just start to appear in the browsers
|
||||||
|
and I'd like to rather look forward and develop for the future than being slowed down by the past.
|
||||||
|
|
||||||
|
But it's not "hard-coded" for any particular browser or engine. If any browser in future will
|
||||||
|
support features required to run impress.js, it will just begin to work there without changes in
|
||||||
|
the code.
|
||||||
|
|
||||||
|
From technical point of view all the positioning of presentation elements in 3D requires CSS 3D
|
||||||
|
transforms support. Transitions between presentation steps are based on CSS transitions.
|
||||||
|
So these two features are required by impress.js to display presentation correctly.
|
||||||
|
|
||||||
|
Unfortunately the support for CSS 3D transforms and transitions is not enough for animations to
|
||||||
|
run smoothly. If the browser doesn't support hardware acceleration or the graphic card is not
|
||||||
|
good enough the transitions will be laggy.
|
||||||
|
|
||||||
|
Additionally the code of impress.js relies on APIs proposed in HTML5 specification, including
|
||||||
|
`classList` and `dataset` APIs. If they are not available in the browser, impress.js will not work.
|
||||||
|
|
||||||
|
Fortunately, as these are JavaScript APIs there are polyfill libraries that patch older browsers
|
||||||
|
with these APIs.
|
||||||
|
|
||||||
|
For example IE10 is said to support CSS 3D transforms and transitions, but it doesn't have `classList`
|
||||||
|
not `dataset` APIs implemented at the moment. So including polyfill libraries *should* help IE10
|
||||||
|
with running impress.js.
|
||||||
|
|
||||||
|
|
||||||
|
### And few more details about mobile support
|
||||||
|
|
||||||
Mobile browsers are currently not supported. Even iOS and Android browsers that support
|
Mobile browsers are currently not supported. Even iOS and Android browsers that support
|
||||||
CSS 3D transforms are forced into fallback view at this point.
|
CSS 3D transforms are forced into fallback view at this point.
|
||||||
@@ -57,6 +88,8 @@ CSS 3D transforms are forced into fallback view at this point.
|
|||||||
Anyway, I'm really curious to see how modern mobile devices such as iPhone or iPad can
|
Anyway, I'm really curious to see how modern mobile devices such as iPhone or iPad can
|
||||||
handle such animations, so future mobile support is considered.
|
handle such animations, so future mobile support is considered.
|
||||||
|
|
||||||
|
iOS supports `classList` and `dataset` APIs starting with version 5, so iOS 4.X and older is not
|
||||||
|
likely to be supported (without polyfill code).
|
||||||
|
|
||||||
|
|
||||||
LICENSE
|
LICENSE
|
||||||
|
|||||||
Reference in New Issue
Block a user