annotate deck.js/extensions/scale/deck.scale.js @ 0:dd1c78c6398f

add having slides
author taiki <taiki@cr.ie.u-ryukyu.ac.jp>
date Mon, 25 Mar 2013 05:14:03 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 /*!
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 Deck JS - deck.scale
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 Copyright (c) 2011-2012 Caleb Troughton
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 Dual licensed under the MIT license and GPL license.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 This module adds automatic scaling to the deck. Slides are scaled down
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 using CSS transforms to fit within the deck container. If the container is
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 big enough to hold the slides without scaling, no scaling occurs. The user
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 can disable and enable scaling with a keyboard shortcut.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 Note: CSS transforms may make Flash videos render incorrectly. Presenters
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 that need to use video may want to disable scaling to play them. HTML5 video
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 works fine.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 (function($, deck, window, undefined) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 var $d = $(document),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 $w = $(window),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 baseHeight, // Value to scale against
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 timer, // Timeout id for debouncing
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 rootSlides,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 Internal function to do all the dirty work of scaling the slides.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 scaleDeck = function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 var opts = $[deck]('getOptions'),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 obh = opts.baseHeight,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 $container = $[deck]('getContainer'),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 baseHeight = obh ? obh : $container.height();
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 // Scale each slide down if necessary (but don't scale up)
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 $.each(rootSlides, function(i, $slide) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 var slideHeight = $slide.innerHeight(),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 $scaler = $slide.find('.' + opts.classes.scaleSlideWrapper),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 scale = $container.hasClass(opts.classes.scale) ?
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 baseHeight / slideHeight :
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 1;
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 $.each('Webkit Moz O ms Khtml'.split(' '), function(i, prefix) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 if (scale === 1) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 $scaler.css(prefix + 'Transform', '');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 else {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 $scaler.css(prefix + 'Transform', 'scale(' + scale + ')');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 Extends defaults/options.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 options.classes.scale
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 This class is added to the deck container when scaling is enabled.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 It is enabled by default when the module is included.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 options.classes.scaleSlideWrapper
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 Scaling is done using a wrapper around the contents of each slide. This
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 class is applied to that wrapper.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 options.keys.scale
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 The numeric keycode used to toggle enabling and disabling scaling.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 options.baseHeight
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 When baseHeight is falsy, as it is by default, the deck is scaled in
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 proportion to the height of the deck container. You may instead specify
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 a height as a number of px, and slides will be scaled against this
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 height regardless of the container size.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 options.scaleDebounce
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 Scaling on the browser resize event is debounced. This number is the
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 threshold in milliseconds. You can learn more about debouncing here:
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 $.extend(true, $[deck].defaults, {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 classes: {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 scale: 'deck-scale',
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 scaleSlideWrapper: 'deck-slide-scaler'
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 },
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 keys: {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 scale: 83 // s
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 },
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 baseHeight: null,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 scaleDebounce: 200
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 jQuery.deck('disableScale')
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 Disables scaling and removes the scale class from the deck container.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 $[deck]('extend', 'disableScale', function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 $[deck]('getContainer').removeClass($[deck]('getOptions').classes.scale);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 scaleDeck();
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 jQuery.deck('enableScale')
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 Enables scaling and adds the scale class to the deck container.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 $[deck]('extend', 'enableScale', function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 $[deck]('getContainer').addClass($[deck]('getOptions').classes.scale);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 scaleDeck();
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 /*
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 jQuery.deck('toggleScale')
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 Toggles between enabling and disabling scaling.
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 */
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 $[deck]('extend', 'toggleScale', function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 var $c = $[deck]('getContainer');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 $[deck]($c.hasClass($[deck]('getOptions').classes.scale) ?
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 'disableScale' : 'enableScale');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 $d.bind('deck.init', function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 var opts = $[deck]('getOptions'),
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 slideTest = $.map([
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 opts.classes.before,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 opts.classes.previous,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 opts.classes.current,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 opts.classes.next,
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 opts.classes.after
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 ], function(el, i) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 return '.' + el;
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 }).join(', ');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 // Build top level slides array
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 rootSlides = [];
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 $.each($[deck]('getSlides'), function(i, $el) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 if (!$el.parentsUntil(opts.selectors.container, slideTest).length) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 rootSlides.push($el);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 }
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 // Use a wrapper on each slide to handle content scaling
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 $.each(rootSlides, function(i, $slide) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 $slide.children().wrapAll('<div class="' + opts.classes.scaleSlideWrapper + '"/>');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 // Debounce the resize scaling
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 $w.unbind('resize.deckscale').bind('resize.deckscale', function() {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 window.clearTimeout(timer);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 timer = window.setTimeout(scaleDeck, opts.scaleDebounce);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 })
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 // Scale once on load, in case images or something change layout
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 .unbind('load.deckscale').bind('load.deckscale', scaleDeck);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 // Bind key events
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 $d.unbind('keydown.deckscale').bind('keydown.deckscale', function(e) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 if (e.which === opts.keys.scale || $.inArray(e.which, opts.keys.scale) > -1) {
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 $[deck]('toggleScale');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 e.preventDefault();
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 }
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 // Enable scale on init
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 $[deck]('enableScale');
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 });
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 })(jQuery, 'deck', this);
dd1c78c6398f add having slides
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170