Skip to content

Commit f93b481

Browse files
Add tests for a more complex html structure, adjust core
1 parent 6564581 commit f93b481

File tree

5 files changed

+305
-207
lines changed

5 files changed

+305
-207
lines changed

.gitignore

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
.DS_Store
2-
test/spec-1-api.js
3-
test/spec-2-shell.js
4-
test/spec-3-tests.js
2+
.sass-cache/
3+
progress/

pitchdeck.core.js

+33-7
Original file line numberDiff line numberDiff line change
@@ -69,18 +69,44 @@
6969
function updateStates() {
7070
var oc = options.classes,
7171
$container = $(options.selectors.container),
72-
old = $container.data('onSlide');
72+
old = $container.data('onSlide'),
73+
$all = $();
7374

75+
// Container state
7476
$container.removeClass(oc.onPrefix + old)
7577
.addClass(oc.onPrefix + current)
7678
.data('onSlide', current);
77-
$.each(slides, function(i, $e) {
78-
$e.toggleClass(oc.before, i < current - 1)
79-
.toggleClass(oc.previous, i === current - 1)
80-
.toggleClass(oc.current, i === current)
81-
.toggleClass(oc.next, i === current + 1)
82-
.toggleClass(oc.after, i > current + 1);
79+
80+
// Remove previous states
81+
$.each(slides, function(i, el) {
82+
$all = $all.add(el);
8383
});
84+
$all.removeClass([
85+
oc.before,
86+
oc.previous,
87+
oc.current,
88+
oc.next,
89+
oc.after
90+
].join(" "));
91+
92+
// Add new states back in
93+
slides[current].addClass(oc.current);
94+
if (current > 0) {
95+
slides[current-1].addClass(oc.previous);
96+
}
97+
if (current + 1 < slides.length) {
98+
slides[current+1].addClass(oc.next);
99+
}
100+
if (current > 1) {
101+
$.each(slides.slice(0, current - 1), function(i, el) {
102+
el.addClass(oc.before);
103+
});
104+
}
105+
if (current + 2 < slides.length) {
106+
$.each(slides.slice(current+2), function(i, el) {
107+
el.addClass(oc.after);
108+
})
109+
}
84110
}
85111

86112
$[pd] = function(method, arg) {

test/fixtures/complex.html

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<div class="pitchdeck-container">
2+
<div class="slide1"></div>
3+
4+
<div class="slide2 slide3 slide4">
5+
<div class="slide2 slide10"></div>
6+
<div class="slide3 slide4"></div>
7+
</div>
8+
9+
<div class="slide3 slide5"></div>
10+
11+
<div class="slide6 slide7 slide8 slide9 slide10">
12+
</div>

test/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<link rel="stylesheet" type="text/css" href="lib/jasmine.css">
77
<script type="text/javascript" src="lib/jasmine.js"></script>
88
<script type="text/javascript" src="lib/jasmine-html.js"></script>
9-
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.5.2.min.js"></script>
9+
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.1.min.js"></script>
1010
<script type="text/javascript" src="lib/jasmine-jquery.js"></script>
1111

1212
<!-- include source files here... -->

0 commit comments

Comments
 (0)