One more example about CSS layers. It demonstrates how to use CSS layers to organose navigation inside a book using 3D FlipBook jQuery plugin.
var html = [ '<div class="page">', '<a href="#" class="link go-page" data-page-n="1" style="top: 160px; left: 80px; width: 680px; height: 45px;"></a>', '<a href="#" class="link go-page" data-page-n="2" style="top: 225px; left: 80px; width: 680px; height: 45px;"></a>', '</div>' ].join(''), css = [ '.page {', 'position: relative;', 'width: 1024px;', 'height: 1448px;', '}', '.page .link {', 'background-color: white;', 'display: block;', 'position: absolute;', 'opacity: 0.1;', '}', '.page .link:hover {', 'opacity: 0.2;', '}', '.page .link:active {', 'opacity: 0.3;', '}' ].join(''), js = [ 'function init(c, a) {', 'c.find(".page .go-page").on("click", function(e) {', 'e.preventDefault();', 'var page = parseInt(a.$(e.target).attr("data-page-n"));', 'console.log(page);', 'a.scene.ctrl.goToPage(page-1);', '});', 'return {};', '}; init' ].join(''); $('.sample-container').FlipBook({ pageCallback: function(n) { return { type: 'image', src: 'books/image/highlight/1.jpg', interactive: false }; }, pages: 6, propertiesCallback: function(props) { props.cssLayersLoader = function(n, clb) { if(!n) { // all layers are inside one iframe so we need define styles just once clb([{ css: css, html: html, js: js }]); } else { clb([{ html: html, js: js }]); } }; return props; } });