annotate 2015_01_20/slide_template/s6/jquery.slideshow.js @ 0:47676a16ed13

Add Slides
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 14 Jul 2015 17:23:04 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 var Slideshow = {};
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 /************************************
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 * lets you define your own "global" transition function
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 * passes in a reference to from and to slide wrapped in jQuery wrapper
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 Slideshow.transition = function( $from, $to ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 // $from.hide();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 // $to.show();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 $from.hide('fast');
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 $to.show('fast');
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 /***********************
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 * sample custom transition using scrollUp effect
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 * inspired by Karl Swedberg's Scroll Up Headline Reader jQuery Tutorial[1]
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 * [1] http://docs.jquery.com/Tutorials:Scroll_Up_Headline_Reader
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 function transitionSlideUpSlideDown( $from, $to ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 $from.slideUp( 500, function() { $to.slideDown( 1000 ); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 function transitionFadeOutFadeIn( $from, $to ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 $from.fadeOut( 500 );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 $to.fadeIn( 500 );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 function transitionScrollUp( $from, $to ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 var cheight = $from.outerHeight();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 // hide scrollbar during animation
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 $( 'body' ).css( 'overflow-y', 'hidden' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 $to.css( 'top', cheight+'px' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 $to.show();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 $from.animate( {top: -cheight}, 'slow' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 $to.animate( {top: 0}, 'slow', function() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 $from.hide().css( 'top', '0px');
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 // restore possible scrollbar
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 $( 'body' ).css( 'overflow-y', 'auto' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 Slideshow.init = function( options ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 var settings = $.extend({
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 mode : 'slideshow', // slideshow | outline | autoplay
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 projectionStyleId : '#styleProjection',
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 screenStyleId : '#styleScreen',
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 titleSelector : 'h1',
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 slideSelector : '.slide', // dummy (not yet working)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 stepSelector : '.step', // dummy (not yet working)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 debug : false,
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 change : null // todo: change to use a custom event and trigger
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 }, options || {});
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 settings.isProjection = true; // are we in projection (slideshow) mode (in contrast to screen (outline) mode)?
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 settings.snum = 1; // current slide # (non-zero based index e.g. starting with 1)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 settings.smax = 1; // max number of slides
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 settings.incpos = 0; // current step in slide
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 settings.steps = null;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 settings.autoplayInterval = null;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 function debug( msg )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 if( settings.debug && window.console && window.console.log )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 window.console.log( '[debug] ' + msg );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 function showHide( action )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 var $navLinks = $( '#navLinks' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 switch( action ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 case 's': $navLinks.css( 'visibility', 'visible' ); break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 case 'h': $navLinks.css( 'visibility', 'hidden' ); break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 case 'c': /* toggle control panel */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 if( $navLinks.css( 'visibility' ) != 'visible' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 $navLinks.css( 'visibility', 'visible' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 $navLinks.css( 'visibility', 'hidden' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 function updateCurrentSlideCounter()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 $( '#currentSlide' ).html( settings.snum + '/' + settings.smax );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 function updateJumpList()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 $('#jumplist').get(0).selectedIndex = (settings.snum-1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 function updatePermaLink()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 // todo: unify hash marks??; use #1 for div ids instead of #slide1?
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 window.location.hash = '#'+settings.snum;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 function goTo( target )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 if( target > settings.smax || target == settings.snum ) return;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 go( target - settings.snum );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 function go( dir )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 debug( 'go: ' + dir );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 if( dir == 0 ) return; /* same slide; nothing to do */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 var cid = '#slide' + settings.snum; /* current slide (selector) id */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 var csteps = settings.steps[settings.snum-1]; /* current slide steps array */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 /* remove all step and stepcurrent classes from current slide */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 if( csteps.length > 0) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 $( csteps ).each( function() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 $(this).removeClass( 'step' ).removeClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 /* set snum to next slide */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 settings.snum += dir;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 if( settings.snum > settings.smax ) settings.snum = settings.smax;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 if( settings.snum < 1 ) settings.snum = 1;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 var nid = '#slide' + settings.snum; /* next slide (selector) id */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 var nsteps = settings.steps[settings.snum-1]; /* next slide steps array */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 if( dir < 0 ) /* go backwards? */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 settings.incpos = nsteps.length;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 /* mark last step as current step */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 if( nsteps.length > 0 )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 $( nsteps[settings.incpos-1] ).addClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 else /* go forwards? */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 settings.incpos = 0;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 if( nsteps.length > 0 ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 $( nsteps ).each( function() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 $(this).addClass( 'step' ).removeClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 if( !(cid == nid) ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 debug( "transition from " + cid + " to " + nid );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 Slideshow.transition( $( cid ), $( nid ) );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 updateJumpList();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 updateCurrentSlideCounter();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 updatePermaLink();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 if (settings.change) { settings.change(); }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 function subgo( dir )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 debug( 'subgo: ' + dir + ', incpos before: ' + settings.incpos + ', after: ' + (settings.incpos+dir) );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 var csteps = settings.steps[settings.snum-1]; /* current slide steps array */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 if( dir > 0)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 { /* go forward? */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 if( settings.incpos > 0 )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 $( csteps[settings.incpos-1] ).removeClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 $( csteps[settings.incpos] ).removeClass( 'step').addClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 settings.incpos++;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 { /* go backwards? */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 settings.incpos--;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 $( csteps[settings.incpos] ).removeClass( 'stepcurrent' ).addClass( 'step' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 if( settings.incpos > 0 )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 $( csteps[settings.incpos-1] ).addClass( 'stepcurrent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 function notOperaFix()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 $( settings.projectionStyleId ).attr( 'media','screen' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 var styleScreen = $( settings.screenStyleId ).get(0);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 styleScreen.disabled = true;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 function toggle()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 // toggle between projection (slide show) mode
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 // and screen (outline) mode
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 // get stylesheets
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 var styleProjection = $( settings.projectionStyleId ).get(0);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 var styleScreen = $( settings.screenStyleId ).get(0);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 if( !styleProjection.disabled )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 styleProjection.disabled = true;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 styleScreen.disabled = false;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 settings.isProjection = false;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 $('.slide').each( function() { $(this).show(); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 styleProjection.disabled = false;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 styleScreen.disabled = true;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 settings.isProjection = true;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 $('.slide').each( function(i) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 if( i == (settings.snum-1) )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 $(this).show();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 $(this).hide();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 function populateJumpList() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 var list = $('#jumplist').get(0);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 $( '.slide' ).each( function(i) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 var text = $(this).find( settings.titleSelector ).text();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 list.options[list.length] = new Option( (i+1)+' : '+ text, (i+1) );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 function createControls()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 // todo: make layout into an id (not class?)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 // do we need or allow more than one element?
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
245
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 // if no div.layout exists, create one
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 if( $( '.layout' ).length == 0 )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 $( "<div class='layout'></div>").appendTo( 'body' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 $( '.layout' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 .append( "<div id='controls'>" )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 .append( "<div id='currentSlide'>" );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
253
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 var $controls = $( '#controls' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 $controls.html( '<div id="navLinks">'
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 + '<a accesskey="t" id="toggle" href="#">&#216;<\/a>'
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 + '<a accesskey="z" id="prev" href="#">&laquo;<\/a>'
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 + '<a accesskey="x" id="next" href="#">&raquo;<\/a>'
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 + '<div id="navList"><select id="jumplist" /><\/div>'
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
261 + '<\/div>' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
262
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 $controls.hover( function() { showHide('s') }, function() { showHide('h') });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 $('#toggle').click( function() { toggle(); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 $('#prev').click( function() { go(-1); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 $('#next').click( function() { go(1); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 $('#jumplist').change( function() { goTo( parseInt( $( '#jumplist' ).val() )); } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 populateJumpList();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 updateCurrentSlideCounter();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 updatePermaLink();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 function toggleSlideNumber()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 // toggle slide number/counter
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 $( '#currentSlide' ).toggle();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
280
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 function toggleFooter()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
283 $( '#footer').toggle();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
284 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
285
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
286
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 function keys(key)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
289 if (!key) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 key = event;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 key.which = key.keyCode;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 if (key.which == 84) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 toggle(); // toggle between project and screen css media mode
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 return;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
296 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 if( settings.isProjection ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
298 switch (key.which) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 case 32: // spacebar
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 case 34: // page down
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
301 case 39: // rightkey
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 case 40: // downkey
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 var csteps = settings.steps[settings.snum-1]; /* current slide steps array */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
305
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 if ( !csteps || settings.incpos >= csteps.length ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 go(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
308 } else {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 subgo(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
312 case 33: // page up
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 case 37: // leftkey
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
314 case 38: // upkey
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 if( !settings.steps[settings.snum-1] || settings.incpos <= 0 ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
317 go(-1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
318 } else {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
319 subgo(-1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
321 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
322 case 36: // home
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
323 goTo(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
324 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
325 case 35: // end
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
326 goTo(settings.smax);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
327 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
328 case 67: // c
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
329 showHide('c'); // toggle controls (navlinks,navlist)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
330 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
331 case 65: //a
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
332 case 80: //p
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
333 case 83: //s
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
334 toggleAutoplay();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
335 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
336 case 70: //f
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
337 toggleFooter();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
338 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
339 case 78: // n
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
340 toggleSlideNumber();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
341 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
342 case 68: // d
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
343 toggleDebug();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 break;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
345 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
346 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
347 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
348
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
349 function autoplay()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
350 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
351 // suspend autoplay in outline view (just slideshow view)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
352 if( !settings.isProjection )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
353 return;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
354
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
355 // next slide/step, please
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
356 var csteps = settings.steps[settings.snum-1]; // current slide steps array
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 if( !csteps || settings.incpos >= csteps.length ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
358 if( settings.snum >= settings.smax )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
359 goTo( 1 ); // reached end of show? start with 1st slide again (for endless cycle)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
360 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
361 go(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
363 else {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
364 subgo(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
366 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
367
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
368 function toggleDebug()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
369 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
370 settings.debug = !settings.debug;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
371 doDebug();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
372 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
373
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 function doDebug()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
375 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
376 // fix/todo: save background into oldbackground
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
377 // so we can restore later
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
378
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
379 if( settings.debug == true )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
380 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
381 $( '#header' ).css( 'background', '#FCC' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 $( '#footer' ).css( 'background', '#CCF' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
383 $( '#controls' ).css( 'background', '#BBD' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 $( '#currentSlide' ).css( 'background', '#FFC' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
386 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 $( '#header' ).css( 'background', 'transparent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 $( '#footer' ).css( 'background', 'transparent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 $( '#controls' ).css( 'background', 'transparent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
391 $( '#currentSlide' ).css( 'background', 'transparent' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
394
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
395
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
396 function toggleAutoplay()
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
397 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
398 if( settings.autoplayInterval )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
399 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
400 clearInterval( settings.autoplayInterval );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
401 settings.autoplayInterval = null;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
402 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
403 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
404 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
405 settings.autoplayInterval = setInterval ( autoplay, 2000 );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
406 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
407 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
408
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
409
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
410
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 function collectStepsWorker(obj) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
412
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
413 var steps = new Array();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
414 if( !obj )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 return steps;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
416
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
417 $(obj).children().each( function() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
418 if( $(this).hasClass( 'step' ) ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
419
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
420 debug( 'step found for ' + this.tagName );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
421 $(this).removeClass( 'step' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
422
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
423 /* don't add enclosing list; instead add step class to all list items/children */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
424 if( $(this).is( 'ol,ul' ) ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
425 debug( ' ol or ul found; adding auto steps' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
426 $(this).children().addClass( 'step' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
427 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
429 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
430 steps.push( this )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
432 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
433
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 steps = steps.concat( collectStepsWorker(this) );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
435 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
436
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437 return steps;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
438 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
439
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 function collectSteps() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
441
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
442 var steps = new Array();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
443
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444 $slides.each( function(i) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 debug ( 'collectSteps for ' + this.id + ':' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
446 steps[i] = collectStepsWorker( this );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
447 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
448
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
449 $( steps ).each( function(i) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
450 debug( 'slide ' + (i+1) + ': found ' + this.length + ' steps' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
451 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
452
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
453 return steps;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
454 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
455
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
456
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
457 function addClicker() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
458 // if you click on heading of slide -> go to next slide (or next step)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
459
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
460 $( settings.titleSelector, $slides ).click( function( ev ) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 if(ev.which != 1) return; // only process left clicks (e.g 1; middle and rightclick use 2 and 3)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
462
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
463 if( !settings.isProjection ) // suspend clicker in outline view (just slideshow view)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
464 return;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
465
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
466 var csteps = settings.steps[settings.snum-1]; // current slide steps array
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
467 if ( !csteps || settings.incpos >= csteps.length )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 go(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
469 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
470 subgo(1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
471 } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
472
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
473
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 $( settings.titleSelector, $slides ).bind('contextmenu', function() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
475 if( !settings.isProjection ) // suspend clicker in outline view (just slideshow view)
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
476 return;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
477
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
478 var csteps = settings.steps[settings.snum-1]; // current slide steps array
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
479 if ( !csteps || settings.incpos >= csteps.length )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
480 go(-1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
481 else
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
482 subgo(-1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
483
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
484 return false;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
485 } );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
486 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
487
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
488 function addSlideIds() {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
489 $slides.each( function(i) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
490 this.id = 'slide'+(i+1);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
491 });
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
492 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
493
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
494 // init code here
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
495
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
496 // store possible slidenumber from hash */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 // todo: use regex to extract number
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
498 // might be #slide1 or just #1
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
499
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
500 var gotoSlideNum = parseInt( window.location.hash.substring(1) );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
501 debug( "gotoSlideNum=" + gotoSlideNum );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
502
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
503 var $slides = $( '.slide' );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
504 settings.smax = $slides.length;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
505
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
506 addSlideIds();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
507 settings.steps = collectSteps();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
508
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
509 createControls();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
510
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
511 addClicker();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
512
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
513 /* opera is the only browser currently supporting css projection mode */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
514 /* if( !$.browser.opera ) */
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
515 notOperaFix();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
516
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
517 if( !isNaN( gotoSlideNum ))
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
518 {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
519 debug( "restoring slide on (re)load #: " + gotoSlideNum );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
520 goTo( gotoSlideNum );
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
521 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
522
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
523 if( settings.mode == 'outline' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
524 toggle();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
525 else if( settings.mode == 'autoplay' )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
526 toggleAutoplay();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
527
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
528
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
529 if( settings.debug == true )
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
530 doDebug();
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
531
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
532 document.onkeyup = keys;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
533
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
534 } // end Slideshow