summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/tests/in/bug-373106-flipbook.html
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/nxhtml/tests/in/bug-373106-flipbook.html')
-rw-r--r--emacs.d/nxhtml/tests/in/bug-373106-flipbook.html160
1 files changed, 160 insertions, 0 deletions
diff --git a/emacs.d/nxhtml/tests/in/bug-373106-flipbook.html b/emacs.d/nxhtml/tests/in/bug-373106-flipbook.html
new file mode 100644
index 0000000..658d391
--- /dev/null
+++ b/emacs.d/nxhtml/tests/in/bug-373106-flipbook.html
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC
+ "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <title>Flipbook (draft)</title>
+ <style type="text/css">
+ body {
+ background-color: black;
+ color: white;
+ }
+
+ .ui-effects-transfer {
+ border: 2px dotted gray;
+ }
+ </style>
+ <script type="text/javascript" src="jquery.js"></script>
+ <script type="text/javascript" src="jquery-ui.js"></script>
+ <script type="text/javascript" src="jquery.event.special.gesture.js"></script>
+ <script type="text/javascript" src="jquery.gestureable.js"></script>
+ <script type="text/javascript">
+ /* Code to do some fancy book-like effects
+ */
+
+ /* a closure-based class */
+ var ImageManager = function (images) {
+ var self = this;
+ var currentPage = 0;
+
+ self.getCurrentPages = function () {
+ return [images[currentPage],
+ images[currentPage+1]];
+ };
+
+ self.turnNext = function () {
+ currentPage += 2;
+ return self.getCurrentPages();
+ };
+
+ self.turnPrevious = function () {
+ currentPage -= 2;
+ return self.getCurrentPages();
+ };
+ };
+
+ function style_element(element) {
+ element.css('background-color', 'black');
+ element.css('width', '900px');
+ element.css('height', '650px');
+ element.css('border', '2px dashed white');
+ }
+
+ function small_gesture(event) {
+ /* called in mousedown of small images */
+ var container = $(event.target).closest('div');
+ var manager = container.data('manager');
+ var large = $(event.target).
+ attr('src').
+ replace(/small/, 'large');
+
+ switch (event.gesture) {
+ case 'U':
+ case 'D':
+ container.data('left').hide();
+ container.data('right').hide();
+ container.data('spacer').hide();
+ container.data('zoomed').attr('src', large).show('clip');
+ break;
+ case 'L':
+ var images = manager.turnPrevious();
+ container.data('left').attr('src', images[0] + '_small.jpg');
+ container.data('right').attr('src', images[1] + '_small.jpg');
+ break;
+ case 'R':
+ var images = manager.turnNext();
+ container.data('left').attr('src', images[0] + '_small.jpg');
+ container.data('right').attr('src', images[1] + '_small.jpg');
+ break;
+ }
+ }
+
+ function large_gesture(event) {
+ var container = $(event.target).closest('div');
+ switch (event.gesture) {
+ case 'U':
+ case 'D':
+ $(event.target).hide();
+ container.data('spacer').show();
+ container.data('left').show();
+ container.data('right').show();
+ }
+ }
+
+ function disable_scroll(event) {
+ /* Simply disables the dragging of elements */
+ return false;
+ }
+
+ function flipbook(element, images) {
+ var manager = new ImageManager(images);
+ element.data('manager', manager);
+
+ // apply the style
+ style_element(element);
+
+ // create a spacer div and attach it
+ var spacer = $('<div class="spacer"></div>');
+ spacer.css('height', '162px');
+ element.data('spacer', spacer);
+ element.append(spacer);
+
+ var zoomed = $('<img />');
+ zoomed.gestureable();
+ zoomed.mouseup(large_gesture).
+ mousedown(disable_scroll).
+ hide();
+
+ element.data('zoomed', zoomed);
+ element.append(zoomed);
+
+ // create the images
+ var currentImages = manager.getCurrentPages();
+ var left = $('<img src="' + currentImages[0] + '_small.jpg" />');
+ var right = $('<img src="' + currentImages[1] + '_small.jpg" />');
+ element.data('left', left);
+ element.data('right', right);
+
+ $([left, right]).each(function (key, value) {
+ // enable gestures
+ value.gestureable();
+ value.mouseup(small_gesture);
+ value.mousedown(disable_scroll);
+ // add to the display
+ element.append(value);
+ });
+ }
+
+ $(document).ready(function () {
+ flipbook($('#flipbook'),
+ ['image_01', 'image_02', 'image_03', 'image_04',
+ 'image_05', 'image_06', 'image_07', 'image_08',
+ 'image_09', 'image_10', 'image_11', 'image_12',
+ 'image_13', 'image_14', 'image_15']);
+ });
+ </script>
+ </head>
+ <body>
+ <div id="flipbook"></div>
+ <p>Usage: gesture left/right to change images, up/down to zoom in/out</p>
+ <p>The flipbook uses a number of libs:</p>
+ <p>
+ <ul>
+ <li>jQuery</li>
+ <li>jQuery UI</li>
+ <li>jQuery Special Event Gestures</li>
+ </ul>
+ </p>
+ </body>
+</html>