Skip to content

Commit ef8257e

Browse files
author
Austin Strange
committed
some more improvements
headline changer tabs use number if you want or no panel-title is given tabs are better positioned .. real size not first * count
1 parent af2e49f commit ef8257e

File tree

3 files changed

+102
-48
lines changed

3 files changed

+102
-48
lines changed

Diff for: css/app.css

+5
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@
22

33

44
h1.site_title { font-family: 'Righteous', cursive; font-weight: normal; font-size: 42px; color: #666; text-shadow: 1px 1px 1px #000;}
5+
6+
7+
#da_slider_head { padding: 10px 0; background: #333; color: #666; text-align: center; margin: 0 40px 20px; text-shadow: 1px 1px 1px #000;}
8+
9+
.samplecode { margin: 10px 0; padding: 20px 50px; display:block; background: #fff;}

Diff for: index.html

+63-44
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,16 @@
2222
<script type="text/javascript">
2323
$().ready(function() {
2424
$('#magic-slider-1').magicSlider();
25-
$('#magic-slider-2').magicSlider({ autoHeight: true, carousel: true, slideDirection: "vertical" });
26-
$('#magic-slider-3').magicSlider({ autoHeight: false, carousel: false, slideDirection: "vertical" });
25+
26+
$('#magic-slider-2').magicSlider({
27+
autoHeight: true,
28+
carousel: true,
29+
slideDirection: "vertical",
30+
changeSliderHeadline: true,
31+
sliderHeadlineSelector: "#da_slider_head"
32+
33+
});
34+
$('#magic-slider-3').magicSlider({ autoHeight: false, dynamicTabsPosition: "count", slideDirection: "vertical" });
2735
$('#magic-slider-4').magicSlider({ autoHeight: false, carousel: true, slideDirection: "horizontal" });
2836
});
2937
</script>
@@ -40,73 +48,84 @@ <h1 class="site_title">magic-slider</h1>
4048
<hr/>
4149
<p>
4250
<strong>default</strong> Settings &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
43-
<a class="xtrig" href="#1" rel="magic-slider-1">external Link 1</a> &nbsp;|&nbsp;
44-
<a class="xtrig" href="#3" rel="magic-slider-1">external Link 3</a>
51+
<a class="xtrig" href="#2" rel="magic-slider-1">external Link [2]</a> &nbsp;|&nbsp;
52+
<a class="xtrig" href="#3" rel="magic-slider-1">external Link [3]</a>
4553
</p>
4654

4755

4856
<div class="magic-slider-wrapper">
4957
<div class="magic-slider preload" id="magic-slider-1">
5058
<div class="panel">
5159
<div class="panel-wrapper">
52-
<h2 class="title">Panel 1</h2>
60+
<h2 class="title hidden">magic-slider</h2>
61+
<p>jQuery-Content-Slider based on Coda-Slider and moutardeSlider.</p>
62+
<p><strong>improvements:</strong></p>
63+
<ul>
64+
<li><strong>vertical sliding</strong> ... wanna go up and down? .. magic-slider goes vertical or horizontal with or without autoHeight, your choice</li>
65+
<li><strong>carousel-mode</strong> (invinite-sliding) ... no scroll-back to beginning if you don't want</li>
66+
<li><strong>headline changer</strong> (for external Titles) ... need an outside Title for youre Slider, here you are! .. ( panelTitle needed! )</li>
67+
<li><strong>numbered tabs</strong> ... use just numbers or panel-title for the tabs</li>
68+
<li><strong>no panel-title needed</strong> ... if no panel-title is provided, panel-count is used for tabs</li>
69+
</ul>
5370
<p>
54-
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.
55-
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec,
56-
pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
57-
vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
71+
magic-slider chould be fully compatible with coda-slider .. just include the js, change 'coda' to 'magic' in your
72+
HTML and CSS. Now everything chould work like before and you are ready to include the new features!
5873
</p>
5974
</div>
6075
</div>
6176
<div class="panel">
6277
<div class="panel-wrapper">
63-
<h2 class="title">Panel 2</h2>
64-
<p>
65-
Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn,
66-
es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales
67-
Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu
68-
ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen,
69-
die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude
70-
nach sich zieht?
71-
</p>
78+
<h2 class="title hidden">code-sample</h2>
79+
<code class="samplecode">
80+
$().ready(function() {<br/>
81+
&nbsp;&nbsp;&nbsp;$('#magic-slider-2').magicSlider({<br/>
82+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoHeight: true, <br/>
83+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carousel: true, <br/>
84+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slideDirection: "vertical", <br/>
85+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;changeSliderHeadline: true, <br/>
86+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sliderHeadlineSelector: "#da_slider_head" <br/>
87+
&nbsp;&nbsp;&nbsp;}); <br/>
88+
});
89+
</code>
90+
<p>This is the code for the slider below.</p>
7291
</div>
7392
</div>
7493
<div class="panel">
7594
<div class="panel-wrapper">
76-
<h2 class="title">Panel 3</h2>
95+
<h2 class="title hidden">html-sample</h2>
96+
<code class="samplecode">
97+
&lt;div class="magic-slider-wrapper"&gt;<br/>
98+
&nbsp;&nbsp;&lt;div class="magic-slider" id="magic-slider-1"&gt;<br/>
99+
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class="panel"&gt;<br/>
100+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class="panel-wrapper"&gt;<br/>
101+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h2 class="title hidden"&gt;Panel 1&lt;/h2&gt;<br/>
102+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Your-Content.&lt;/p&gt;<br/>
103+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>
104+
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>
105+
&nbsp;&nbsp;&lt;/div&gt;<br/>
106+
&lt;/div&gt;<br/>
107+
</code>
77108
<p>
78-
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte.
79-
Abgeschieden wohnen Sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans.
80-
Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien.
81-
Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen.
82-
Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches
83-
Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum,
84-
hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata,
85-
wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren.
86-
</p>
87-
</div>
88-
</div>
89-
<div class="panel">
90-
<div class="panel-wrapper">
91-
<h2 class="title">Panel 4</h2>
92-
<p>
93-
Überall dieselbe alte Leier. Das Layout ist fertig, der Text lässt auf sich warten. Damit das Layout nun nicht
94-
nackt im Raume steht und sich klein und leer vorkommt, springe ich ein: der Blindtext. Genau zu diesem Zwecke
95-
erschaffen, immer im Schatten meines großen Bruders »Lorem Ipsum«, freue ich mich jedes Mal, wenn Sie ein
96-
paar Zeilen lesen. Denn esse est percipi - Sein ist wahrgenommen werden. Und weil Sie nun schon die Güte haben,
97-
mich ein paar weitere Sätze lang zu begleiten, möchte ich diese Gelegenheit nutzen, Ihnen nicht nur als Lückenfüller
98-
zu dienen, sondern auf etwas hinzuweisen, das es ebenso verdient wahrgenommen zu werden: Webstandards nämlich.
109+
Sample with 1 Panel and hidden Panel-Titel .. this title isn't needed, but usefull if you want
110+
tab-links with text are change the slider-headline like below.
99111
</p>
100112
</div>
101113
</div>
114+
102115
</div> <!-- end of: magic-slider -->
103116
</div> <!-- end of: magic-slider-wrapper -->
104117

105118

106119

107120

108121
<hr/>
109-
<p>autoHeight: <strong>true</strong>, carousel: <strong>true</strong>, slideDirection: <strong>"vertical"</strong></p>
122+
<p>
123+
autoHeight: <strong>true</strong>, carousel: <strong>true</strong>, slideDirection: <strong>"vertical"</strong>, changeSliderHeadline: <strong>true</strong>
124+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
125+
<a class="xtrig" href="#2" rel="magic-slider-2">external Link [2]</a> &nbsp;|&nbsp;
126+
<a class="xtrig" href="#3" rel="magic-slider-2">external Link [3]</a>
127+
</p>
128+
<h2 id="da_slider_head">I should be changed be js!</h2>
110129

111130
<div class="magic-slider-wrapper">
112131
<div class="magic-slider preload" id="magic-slider-2">
@@ -170,10 +189,10 @@ <h2 class="title">Panel 4</h2>
170189

171190
<hr/>
172191
<p>
173-
autoHeight: <strong>false</strong>, carousel: <strong>false</strong>, slideDirection: <strong>"vertical"</strong>
192+
autoHeight: <strong>false</strong>, dynamicTabsPosition: <strong>count</strong>, slideDirection: <strong>"vertical"</strong>
174193
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
175-
<a class="xtrig" href="#1" rel="magic-slider-3">external Link 1</a> &nbsp;|&nbsp;
176-
<a class="xtrig" href="#3" rel="magic-slider-3">external Link 3</a>
194+
<a class="xtrig" href="#2" rel="magic-slider-3">external Link [2]</a> &nbsp;|&nbsp;
195+
<a class="xtrig" href="#3" rel="magic-slider-3">external Link [3]</a>
177196
</p>
178197

179198
<div class="magic-slider-wrapper">

Diff for: js/magic-slider.js

+34-4
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,16 @@ $.fn.magicSlider = function(settings) {
3030
dynamicTabs: true,
3131
dynamicTabsAlign: "center",
3232
dynamicTabsPosition: "top",
33+
dynamicTabsPosition: "title", // "title" / "count"
3334
externalTriggerSelector: "a.xtrig",
3435
firstPanelToLoad: 1,
3536
panelTitleSelector: "h2.title",
3637
slideEaseDuration: 1000,
3738
slideEaseFunction: "swing",
3839
slideDirection: "horizontal", // "horizontal" / "vertical"
39-
carousel: false
40+
carousel: false,
41+
changeSliderHeadline: false,
42+
sliderHeadlineSelector: "#magic_slider_head" // Selector for headline
4043
}, settings);
4144

4245
return this.each(function(){
@@ -57,18 +60,39 @@ $.fn.magicSlider = function(settings) {
5760
last = false; // Used in carousel mode
5861
clon = ''; // Used in carousel mode => 'first' / 'last'
5962

63+
64+
// If Headlineanimation wanted
65+
if ( settings.changeSliderHeadline == true ){ var panelHeadlines = new Array(); };
66+
67+
6068
// Special vars depend on Slider-Type
6169
if (settings.slideDirection == "horizontal"){
6270
var panelContainerWidth = (settings.carousel) ? panelWidth*( panelCount+1 ) : panelWidth*panelCount
6371
slider.css('height', 'auto');
6472
slider.find('.panel').css('height', 'auto');
73+
if ( settings.changeSliderHeadline == true ){
74+
slider.find(".panel").each(function(index) {
75+
if ( $(this).find(settings.panelTitleSelector).length > 0 ){
76+
panelHeadlines[index] = $(this).find(settings.panelTitleSelector).html();
77+
} else {
78+
panelHeadlines[index] = index;
79+
};
80+
});
81+
};
6582
} else {
6683
var panelHeight = slider.find(".panel").height();
6784
var panelContainerWidth = panelWidth;
6885
var panelContaineroffset = new Array();
6986
var panelsHeights = new Array();
7087
var daHeight = 0;
7188
slider.find(".panel").each(function(index) {
89+
if ( settings.changeSliderHeadline == true ){
90+
if ( $(this).find(settings.panelTitleSelector).length > 0 ){
91+
panelHeadlines[ index ] = $(this).find(settings.panelTitleSelector).html();
92+
} else {
93+
panelHeadlines[ index ] = index;
94+
};
95+
};
7296
panelContaineroffset[ index ] = daHeight;
7397
daHeight = daHeight + $(this).height();
7498
panelsHeights[ index ] = $(this).height();
@@ -166,19 +190,22 @@ $.fn.magicSlider = function(settings) {
166190
break;
167191
};
168192
ul = $('#magic-nav-' + sliderCount + ' ul');
193+
var dynamicListWidth = 0;
194+
169195
// Create the nav items
170196
$('.panel', slider).each(function(n) {
171-
if ( $(this).find(settings.panelTitleSelector).length > 0 ) {
197+
if ( $(this).find(settings.panelTitleSelector).length > 0 && settings.dynamicTabsPosition == "title" ) {
172198
ul.append('<li class="tab' + (n+1) + '"><a href="#' + (n+1) + '">' + $(this).find(settings.panelTitleSelector).text() + '</a></li>');
173199
} else {
174200
ul.append('<li class="tab' + (n+1) + '"><a href="#' + (n+1) + '">' + (n+1) + '</a></li>');
175-
}
201+
};
202+
dynamicListWidth = dynamicListWidth + ul.find( 'li.tab' + (n+1) ).width() + 2;
176203
});
177204
navContainerWidth = slider.width() + slider.siblings('.magic-nav-left').width() + slider.siblings('.magic-nav-right').width();
178205
ul.parent().css({ width: navContainerWidth });
179206
switch (settings.dynamicTabsAlign) {
180207
case "center":
181-
ul.css({ width: ($("li", ul).width() + 2) * panelCount });
208+
ul.css({ width: dynamicListWidth });
182209
break;
183210
case "right":
184211
ul.css({ float: 'right' });
@@ -294,6 +321,9 @@ $.fn.magicSlider = function(settings) {
294321
} else {
295322
doThePanelMove(targetPanelIndex);
296323
};
324+
if ( settings.changeSliderHeadline == true ){
325+
$(settings.sliderHeadlineSelector).html( panelHeadlines[ targetPanelIndex - 1 ] );
326+
};
297327
slider.find('div.panel-container div.panel').removeClass('current');
298328
slider.find('div.panel-container div.panel:eq('+ (targetPanelIndex - 1) + ')').addClass('current');
299329
};

0 commit comments

Comments
 (0)