parent
38d29b3fb4
commit
9a5d95edb5
9 changed files with 93 additions and 4 deletions
@ -1,3 +1,3 @@ |
|||||||
# Storybook |
# Storybook |
||||||
|
|
||||||
Small javascript app to demostrate objects and arrays. |
Small javascript app to demostrate HtmlDOM, arrays and objects. |
@ -0,0 +1,47 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<link rel="stylesheet" href="lib/style.css"> |
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Overpass"> |
||||||
|
<script src="lib/book.js"></script> |
||||||
|
<title>Storybook</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="book"> |
||||||
|
<h2 id="title">{book.title}</h2> |
||||||
|
<div id="page"> |
||||||
|
<img src="images/noimage.png" id="pageImage"> |
||||||
|
<div id="pageText"> |
||||||
|
{page.text} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div id="buttons"> |
||||||
|
{page.buttons} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script type="text/javascript"> |
||||||
|
// array of pages |
||||||
|
pages = []; |
||||||
|
|
||||||
|
// page 1 |
||||||
|
buttons = []; |
||||||
|
buttons.push(new Button(1, "Visit Lonely Mountain")); |
||||||
|
|
||||||
|
pages.push(new Page("images/theshire.jpg", "The Shire is a region of J. R. R. Tolkien's fictional Middle-earth, described in The Lord of the Rings and other works. The Shire is an inland area settled exclusively by hobbits, the Shire-folk, largely sheltered from the goings-on in the rest of Middle-earth. It is in the northwest of the continent, in the region of Eriador and the Kingdom of Arnor.", buttons)); |
||||||
|
|
||||||
|
// page 2 |
||||||
|
buttons = []; |
||||||
|
buttons.push(new Button(0, "Visit The Shine")); |
||||||
|
|
||||||
|
pages.push(new Page("images/lonelymountain.jpg", "Erebor stood hundreds of miles from the nearest mountain range. Tolkien's rendering of Thrór's map in The Hobbit shows it with six ridges stretching out from a central peak that was snowcapped well into spring. The whole mountain was perhaps ten miles in diameter; it contained an immense wealth of gold and jewels.", buttons)); |
||||||
|
|
||||||
|
|
||||||
|
book = new Book("The Hobbit Locations", pages); |
||||||
|
|
||||||
|
book.displayPage(0); |
||||||
|
</script> |
||||||
|
</body> |
||||||
|
</html> |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 656 KiB |
After Width: | Height: | Size: 296 KiB |
@ -0,0 +1,41 @@ |
|||||||
|
class Book { |
||||||
|
constructor(title, pages) { |
||||||
|
this.title = title; |
||||||
|
this.pages = pages; |
||||||
|
} |
||||||
|
|
||||||
|
displayPage(pageIndex) { |
||||||
|
var page = this.pages[pageIndex]; |
||||||
|
|
||||||
|
document.getElementById("title").innerHTML = this.title; |
||||||
|
document.getElementById("pageImage").src = page.imageSRC; |
||||||
|
document.getElementById("pageText").innerHTML = page.text; |
||||||
|
|
||||||
|
var buttons = document.getElementById("buttons"); |
||||||
|
|
||||||
|
// clear buttons
|
||||||
|
buttons.innerHTML = ""; |
||||||
|
|
||||||
|
for(var button of page.buttons) { |
||||||
|
const btn = document.createElement("button"); |
||||||
|
btn.append(document.createTextNode(button.text)); |
||||||
|
btn.setAttribute("onclick", "book.displayPage("+ button.pageIndex +")"); |
||||||
|
buttons.append(btn); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class Page { |
||||||
|
constructor(imageSRC, text, butttons) { |
||||||
|
this.imageSRC = imageSRC; |
||||||
|
this.text = text; |
||||||
|
this.buttons = buttons; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
class Button { |
||||||
|
constructor(pageIndex, text) { |
||||||
|
this.pageIndex = pageIndex; |
||||||
|
this.text = text; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue