Ik ben bezig met een JQuery slider. Nu heb ik een tutorial gevonden en ben de code gaan implementeren in een test bestand. Nu werkt de rechter knop van mijn slider correct. Maar de linker wil niet werken. Nu heb ik de knop 2x definieert en 1 maal buiten mijn slider div geplaatst. Deze knop werkt wel, maar de ene in de slider div doet het niet. Ik snap niet waarom hij het buiten het slider object wel doet, maar er binnen in niet.
Javascript code:
Het is natuurlijk vreemd dat een element (a) in een bepaalde div wordt geplaatst dat deze in eens niet meer werkt!
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <a href="#" class="knop-vorige" id="vorige"><img src="images/pijl-vorige.png"></a> //Knop 1, werkt wel <div class="slider" id="slider"> <a href="#" id="vorige"><img src="images/pijl-vorige.png"></a> //Knop 2, juiste positie, werkt niet <div class="slider-wrapper"> <div class="slider-content"> <div class="slider-artikel"> <h1>Slide 1</h1> <span class="tekst">Tekst slide 1!</span> </div> <div class="slider-artikel"> <h1>Slide 2</h1> <span class="tekst">Tekst slide 2!</span> </div> <div class="slider-artikel"> <h1>Slide 3</h1> <span class="tekst">Tekst slide 3!</span> </div> </div> </div> </div> |
Javascript code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
| (function($) { $.fn.ContentSlider = function(options) { var defaults = { width : '925px', height : '220px', speed : 400, easing : 'easeOutQuad', } var defaultWidth = defaults.width; var o = $.extend(defaults, options); var w = parseInt(o.width); var n = this.children('.slider-wrapper').children('.slider-content').children('.slider-artikel').length; var content = this.children('.slider-wrapper').children('.slider-content'); var x = -1*w*n+w; // Minimum left value var p = parseInt(o.width)/parseInt(defaultWidth); var thisInstance = this.attr('id'); var inuse = false; // Prevents colliding animations var slide = 1; function moveSlider(d, b) { if(d=='left') { slide++; } else { slide--; } var l = parseInt(content.css('left')); if(isNaN(l)) { var l = 0; } var m = (d=='left') ? l-w : l+w; if(m<=0&&m>=x) { content.animate({ 'left':m+'px' }, o.speed, o.easing, function() { inuse=false; }); if(slide>1) { $(".knop-vorige").show(); } if(slide>=n) { $(".knop-volgende").hide(); } if(slide==1) { $(".knop-volgende").show(); $(".knop-vorige").hide(); } /*/if(b.attr('class')=='cs_leftBtn') { var thisBtn = $('#'+thisInstance+' .cs_leftBtn'); var otherBtn = $('#'+thisInstance+' .cs_rightBtn'); } else { var thisBtn = $('#'+thisInstance+' .cs_rightBtn'); var otherBtn = $('#'+thisInstance+' .cs_leftBtn'); }*/ } } function vCenterBtns(b) { // Safari and IE don't seem to like the CSS used to vertically center // the buttons, so we'll force it with this function var mid = (parseInt(o.height)/2)-30; b .find('.knop-vorige').css({ 'top':mid+'px', 'padding':0 }).end() .find('.knop-volgende').css({ 'top':mid+'px', 'padding':0 }); } return this.each(function() { $('#vorige').bind( 'click', function() { if(inuse===false) { inuse=true; moveSlider('right', $('#vorige')); } return false; // Keep the link from firing }); /* $('.knop-vorige').bind( 'click', function() { alert('test'); return false; // Keep the link from firing });*/ // Store a copy of the button in a variable to pass to moveSlider() $('.knop-volgende').bind('click', function() { if(inuse===false) { inuse=true; moveSlider('left', $('.knop-volgende')); } return false; // Keep the link from firing }); $(this) // Set the width and height of the div to the defined size .css({ width:o.width, height:o.height }) // Dig down to the article div elements .find('.slider-artikel') // Set the width and height of the div to the defined size .css({ width:o.width, height:o.height }) .end() // Animate the entrance of the buttons .find('.knop-vorige') .hide() .find('.knop-volgende') .hide() .animate({ 'width':'show' }); // Store a copy of the button in a variable to pass to moveSlider() vCenterBtns($(this)); // This is a CSS fix function. }); } })(jQuery) |
Het is natuurlijk vreemd dat een element (a) in een bepaalde div wordt geplaatst dat deze in eens niet meer werkt!