summaryrefslogtreecommitdiff
path: root/lib/epub.js/examples/single-full.html
diff options
context:
space:
mode:
Diffstat (limited to 'lib/epub.js/examples/single-full.html')
-rw-r--r--lib/epub.js/examples/single-full.html280
1 files changed, 280 insertions, 0 deletions
diff --git a/lib/epub.js/examples/single-full.html b/lib/epub.js/examples/single-full.html
new file mode 100644
index 0000000..cf96238
--- /dev/null
+++ b/lib/epub.js/examples/single-full.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>EPUB.js Scrolled Full Example</title>
+
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.min.js"></script>
+ <script src="../dist/epub.js"></script>
+
+
+ <style type="text/css">
+ body {
+ margin: 0;
+ background: #fafafa;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #333;
+ }
+
+ #navigation {
+ width: 300px;
+ position: absolute;
+ overflow: auto;
+ top: 60px;
+ left: 1000px
+ }
+
+ #navigation.fixed {
+ position: fixed;
+ }
+
+ #navigation h1 {
+ width: 200px;
+ font-size: 16px;
+ font-weight: normal;
+ color: #777;
+ margin-bottom: 10px;
+ }
+
+ #navigation h2 {
+ font-size: 14px;
+ font-weight: normal;
+ color: #B0B0B0;
+ margin-bottom: 20px;
+ }
+
+ #navigation ul {
+ padding-left: 18px;
+ margin-left: 0;
+ margin-top: 12px;
+ margin-bottom: 12px;
+ }
+
+ #navigation ul li {
+ list-style: decimal;
+ margin-bottom: 10px;
+ color: #cccddd;
+ font-size: 12px;
+ padding-left: 0;
+ margin-left: 0;
+ }
+
+ #navigation ul li a {
+ color: #ccc;
+ text-decoration: none;
+ }
+
+ #navigation ul li a:hover {
+ color: #777;
+ text-decoration: underline;
+ }
+
+ #navigation ul li a.active {
+ color: #000;
+ }
+
+ #viewer {
+
+ overflow: hidden;
+ width: 800px;
+ margin: 0 50px;
+ background: url('ajax-loader.gif') center center no-repeat;
+
+ }
+
+ #viewer .epub-view {
+ background: white;
+ box-shadow: 0 0 4px #ccc;
+ /*margin: 10px;*/
+ /*padding: 40px 80px;*/
+ }
+
+ #main {
+ position: absolute;
+ top: 50px;
+ left: 50px;
+ width: 800px;
+ z-index: 2;
+ transition: left .15s cubic-bezier(.55, 0, .2, .8) .08s;
+ }
+
+ #main.open {
+ left: 0;
+ }
+
+ #pagination {
+ text-align: center;
+ margin-left: 80px;
+ /*padding: 0 50px;*/
+ }
+
+ .arrow {
+ margin: 14px;
+ display: inline-block;
+ text-align: center;
+ text-decoration: none;
+ color: #ccc;
+ }
+
+ .arrow:hover {
+ color: #777;
+ }
+
+ .arrow:active {
+ color: #000;
+ }
+
+ #prev {
+ float: left;
+ }
+
+ #next {
+ float: right;
+ }
+
+ #toc {
+ display: block;
+ margin: 10px auto;
+ }
+ </style>
+</head>
+<body>
+ <div id="navigation">
+ <h1 id="title">...</h1>
+ <image id="cover" width="150px"/>
+ <h2 id="author">...</h2>
+ <div id="toc"></div>
+ </div>
+ <div id="main">
+ <div id="viewer"></div>
+ <div id="pagination">
+ <a id="prev" href="#prev" class="arrow">...</a>
+ <a id="next" href="#next" class="arrow">...</a>
+ </div>
+ </div>
+
+ <script>
+ // Load the opf
+ var book = ePub("https://s3.amazonaws.com/moby-dick/moby-dick.epub");
+ var rendition = book.renderTo("viewer", {
+ flow: "scrolled-doc"
+ });
+ var hash = window.location.hash.slice(2);
+ console.log(hash);
+ rendition.display(hash || undefined);
+
+
+ var next = document.getElementById("next");
+ next.addEventListener("click", function(e){
+ rendition.next();
+ e.preventDefault();
+ }, false);
+
+ var prev = document.getElementById("prev");
+ prev.addEventListener("click", function(e){
+ rendition.prev();
+ e.preventDefault();
+ }, false);
+
+
+
+ rendition.on("rendered", function(section){
+ var nextSection = section.next();
+ var prevSection = section.prev();
+
+ if(nextSection) {
+ nextNav = book.navigation.get(nextSection.href);
+
+ if(nextNav) {
+ nextLabel = nextNav.label;
+ } else {
+ nextLabel = "next";
+ }
+
+ next.textContent = nextLabel + " »";
+ } else {
+ next.textContent = "";
+ }
+
+ if(prevSection) {
+ prevNav = book.navigation.get(prevSection.href);
+
+ if(prevNav) {
+ prevLabel = prevNav.label;
+ } else {
+ prevLabel = "previous";
+ }
+
+ prev.textContent = "« " + prevLabel;
+ } else {
+ prev.textContent = "";
+ }
+
+ // Add CFI fragment to the history
+ //history.pushState({}, '', section.href);
+ window.location.hash = "#/"+section.href
+ });
+
+ rendition.on("relocated", function(location){
+ console.log(location);
+ });
+
+ book.loaded.navigation.then(function(toc){
+ var $nav = document.getElementById("toc"),
+ docfrag = document.createDocumentFragment();
+ var addTocItems = function (parent, tocItems) {
+ var $ul = document.createElement("ul");
+ tocItems.forEach(function(chapter) {
+ var item = document.createElement("li");
+ var link = document.createElement("a");
+ link.textContent = chapter.label;
+ link.href = chapter.href;
+ item.appendChild(link);
+
+ if (chapter.subitems) {
+ addTocItems(item, chapter.subitems)
+ }
+
+ link.onclick = function(){
+ var url = link.getAttribute("href");
+ rendition.display(url);
+ return false;
+ };
+
+ $ul.appendChild(item);
+ });
+ parent.appendChild($ul);
+ };
+
+ addTocItems(docfrag, toc);
+
+ $nav.appendChild(docfrag);
+
+ if ($nav.offsetHeight + 60 < window.innerHeight) {
+ $nav.classList.add("fixed");
+ }
+
+ });
+
+ book.loaded.metadata.then(function(meta){
+ var $title = document.getElementById("title");
+ var $author = document.getElementById("author");
+ var $cover = document.getElementById("cover");
+
+ $title.textContent = meta.title;
+ $author.textContent = meta.creator;
+ if (book.archive) {
+ book.archive.createUrl(book.cover)
+ .then(function (url) {
+ $cover.src = url;
+ })
+ } else {
+ $cover.src = book.cover;
+ }
+
+ });
+ </script>
+
+</body>
+</html>