Skip to content

Commit 46b8662

Browse files
author
bradrobertson
committed
config option for initial effect on tabs
1 parent 5f5eb0f commit 46b8662

File tree

4 files changed

+72
-8
lines changed

4 files changed

+72
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- Fix dateinput selectors bug[#541](https://github.com/jquerytools/jquerytools/issues/541)
55
- Fix history bug in scrollable navigator[#542](https://github.com/jquerytools/jquerytools/issues/542)
66
- Fix apple effect on firefox 3.6 [#310](https://github.com/jquerytools/jquerytools/issues/310)
7+
- Initial effect on tabs is now configurable [#531](https://github.com/jquerytools/jquerytools/issues/531)
78

89
# 1.2.6
910
### Sept 15, 2011

src/tabs/tabs.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
onBeforeClick: null,
2323
onClick: null,
2424
effect: 'default',
25+
initialEffect: false, // whether or not to show effect in first init of tabs
2526
initialIndex: 0,
2627
event: 'click',
2728
rotate: false,
@@ -141,11 +142,11 @@
141142

142143
function Tabs(root, paneSelector, conf) {
143144

144-
var self = this,
145-
trigger = root.add(this),
146-
tabs = root.find(conf.tabs),
147-
panes = paneSelector.jquery ? paneSelector : root.children(paneSelector),
148-
current;
145+
var self = this,
146+
trigger = root.add(this),
147+
tabs = root.find(conf.tabs),
148+
panes = paneSelector.jquery ? paneSelector : root.children(paneSelector),
149+
current;
149150

150151

151152
// make sure tabs and panes are found
@@ -158,7 +159,8 @@
158159
$.extend(this, {
159160
click: function(i, e) {
160161

161-
var tab = tabs.eq(i);
162+
var tab = tabs.eq(i),
163+
firstRender = !root.data('tabs');
162164

163165
if (typeof i == 'string' && i.replace("#", "")) {
164166
tab = tabs.filter("[href*=" + i.replace("#", "") + "]");
@@ -185,9 +187,12 @@
185187
e.type = "onBeforeClick";
186188
trigger.trigger(e, [i]);
187189
if (e.isDefaultPrevented()) { return; }
190+
191+
// if firstRender, only run effect if initialEffect is set, otherwise default
192+
var effect = firstRender ? conf.initialEffect && conf.effect || 'default' : conf.effect;
188193

189194
// call the effect
190-
effects[conf.effect].call(self, i, function() {
195+
effects[effect].call(self, i, function() {
191196
current = i;
192197
// onClick callback
193198
e.type = "onClick";

test/tabs/effect.html

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<!DOCTYPE html>
2+
3+
<html>
4+
<head>
5+
<script src="../js/jquery-1.6.2.js"></script>
6+
<script src="../../src/tabs/tabs.js"></script>
7+
<link rel="stylesheet" type="text/css" href="css/tabs.css"/>
8+
</head>
9+
10+
<body>
11+
<!-- tabs -->
12+
<ul class="tabs">
13+
<li><a href="#1">Tab 1</a></li>
14+
<li><a href="#2">Second tab</a></li>
15+
<li><a href="#3">A ultra long third tab</a></li>
16+
</ul>
17+
18+
<!-- panes -->
19+
<div class="panes">
20+
21+
<div class="pane" style="display:block">
22+
<p>
23+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis viverra, leo sit amet auctor fermentum, risus lorem posuere tortor, in accumsan purus magna imperdiet sem.
24+
</p>
25+
26+
<p>
27+
Suspendisse enim. Pellentesque facilisis aliquam enim. Maecenas facilisis molestie lectus. Sed ornare ultricies tortor. Vivamus nibh metus, faucibus quis, semper ut, dignissim id, diam.
28+
</p>
29+
</div>
30+
31+
<div class="pane">
32+
<p>
33+
Mauris ultricies. Nam feugiat egestas nulla. Donec augue dui, molestie sed, tristique sit amet, blandit eu, turpis. Mauris hendrerit, nisi et sodales tempor, orci tellus laoreet elit, sed molestie dui quam vitae dui.
34+
</p>
35+
<p>
36+
Pellentesque nisl. Ut adipiscing vehicula risus. Nam eget tortor. Maecenas id augue. Vivamus interdum nulla ac dolor. Fusce metus. Suspendisse eu purus. Maecenas quis lacus eget dui volutpat molestie.
37+
</p>
38+
</div>
39+
40+
<div class="pane">
41+
<p>
42+
Maecenas at odio. Nunc laoreet lectus vel ante. Nullam imperdiet. Sed justo dolor, mattis eu, euismod sed, tempus a, nisl. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
43+
</p>
44+
45+
<p>
46+
In sed dolor. Etiam eget quam ac nibh pharetra adipiscing. Nullam vitae ligula. Sed sit amet leo sit amet arcu mollis ultrices. Vivamus rhoncus sapien nec lorem. In mattis nisi. Vivamus at enim. Integer semper imperdiet massa. Vestibulum nulla massa, pretium quis, porta id, vestibulum vitae, velit.
47+
</p>
48+
</div>
49+
</div>
50+
51+
<script type="text/javascript">
52+
$(function(){
53+
$(".tabs").tabs(".pane", {effect: 'fade'});
54+
});
55+
</script>
56+
57+
</body>
58+
</html>

test/tabs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
<script src="../js/jquery-1.4.2.js"></script>
2+
<script src="../js/jquery-1.6.2.js"></script>
33
<script src="../../src/tabs/tabs.js"></script>
44
<link rel="stylesheet" type="text/css" href="css/tabs.css"/>
55

0 commit comments

Comments
 (0)