|
|||
![]()
Hallo sehr geehrte Commune,
ich habe eine Frage zu meiner Slideshow, die ich auf meiner One-Page-Site mehrfach verwenden möchte. Ich möchte, dass ich sie mehrfach (für mehrere Container) anwenden kann. Bin aber leider noch nicht ganz vertraut mit jQuery. So kommt es bei mir zu den Problem, dass der neu angelegte Container mit dem Slider sofort dem ersten Slider im ersten Container angefügt wird. Momentan verwende ich diesen Code: Code:
<script type="text/javascript"> $(document).ready(function(){ var currentPosition = 0; var slideWidth = 960; var slides = $('.slide'); var numberOfSlides = slides.length; // Remove scrollbar in JS $('#slidesContainer').css('overflow', 'hidden'); // Wrap all .slides with #slideInner div slides .wrapAll('<div id="slideInner"></div>') // Float left to display horizontally, readjust .slides width .css({ 'float' : 'left', 'width' : slideWidth }); // Set #slideInner width equal to total width of all slides $('#slideInner').css('width', slideWidth * numberOfSlides); // Insert controls in the DOM $('#slideshow') .prepend('<span class="control" id="leftControl">Clicking moves left</span>') .append('<span class="control" id="rightControl">Clicking moves right</span>'); // Hide left arrow control on first load manageControls(currentPosition); // Create event listeners for .controls clicks $('.control') .bind('click', function(){ // Determine new position currentPosition = ($(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1; // Hide / show controls manageControls(currentPosition); // Move slideInner using margin-left $('#slideInner').animate({ 'marginLeft' : slideWidth*(-currentPosition) }); }); // manageControls: Hides and Shows controls depending on currentPosition function manageControls(position){ // Hide left arrow if position is first slide if(position==0){ $('#leftControl').hide() } else{ $('#leftControl').show() } // Hide right arrow if position is last slide if(position==numberOfSlides-1){ $('#rightControl').hide() } else{ $('#rightControl').show() } } }); </script> Zu meinem Anliegen: Wie muss ich den Code ändern, dass der Loop sauber nach jedem Container endet und der Slider im neuen Container nur die Elemente greift, die dort angelegt sind? Vielen Dank für jeden Ratschlag und Hilfe. MythTakes |
Sponsored Links |
|
||||
![]()
Hallo,
ich denke es wäre sinnvoll, wenn du uns deinen Versuch online zur Verfügung stellen würdest. Ich kann dir hierfür jsFiddle und Tinkerbin wärmstens empfehlen. Gruß, lotti.
__________________
Empfehlenswerte Links: jsFiddle | JavaScript Patterns | RedBeanPHP | Mozilla Developer Network -/- W3C Validator | JSLint |
|
|||
![]()
Okay, ich habe die Seite mal hochgeladen und nur den relevanten Bereich zur Verfügung gestellt.
Unter http://bit.ly/K6zlZk Und Doktor, können Sie mir helfen? Geändert von MythTakes (03.05.2012 um 22:58 Uhr) |
|
||||
![]()
Hallo,
du benutzt zwar verschiedene IDs für deine Container (#slideshow, #slideInner, ..), allerdings bindest du die Click-Events immer anhand des Selektors '.control' (also für JEDES Element der Klasse '.control'). Das führt letztlich dazu, dass beim Auslösen eines Klicks auf Elemente der Klasse '.control' ALLE Slides durchgeführt werden. Hier solltest du das Ganze etwas umstrukturieren und die Elemente der Klasse '.control' abhängig von einem Eltern-Element selektieren. Beispielsweise so: $( '#slideshow .control' ). Du könntest natürlich auch mit next() und prev() arbeiten. Ich hoffe ich konnte dir vorerst helfen, auch wenn ich den Code nur kurz überflogen habe. Dass du das Ganze besser in ein Plug-In packst, ist hoffentlich klar ![]() Gruß, lotti.
__________________
Empfehlenswerte Links: jsFiddle | JavaScript Patterns | RedBeanPHP | Mozilla Developer Network -/- W3C Validator | JSLint Geändert von lottikarotti (04.05.2012 um 11:48 Uhr) |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Slideshow einfügen in html | Die Hilfesuchende | (X)HTML | 4 | 08.04.2012 20:56 |
php tag mittel jquery einfügen? | benzrecordings | Javascript & Ajax | 4 | 16.12.2011 00:34 |
Ladezeitenstatus-Bild bei JQuery Slideshow möglich? | MarkusStar | Javascript & Ajax | 2 | 19.04.2010 21:44 |
jquery slideshow | uwehamburg | Javascript & Ajax | 3 | 28.05.2009 12:37 |