xamunrax
Erfahrenes Mitglied
Hallo,
ich habe mit Hilfe eines Tutorials einen ProduktSlider (ähnlich wie der von apple.de) gebaut, nun habe ich folgendes Problem, im Tutorial wird der Slider beim Laden der Seite gestartet, da der Slider bei mir aber nicht von beginn an auf der Homepage ist, sondern erst später mit (appendTo) der Seite hinugefügt wird, kann das Script beim Laden der Seite natürlich den Slider nicht finden und somit bleibt er ohne Funktion.
Hier Ausschnitte aus dem Code:
CSS:
HTML:
Der HTML-Code wird erst später per (appendTo) der seite hinzugefügt!
und zu aller letzt JS (jQuery):
und genau hier liegt das Problem, da er die Funktion schon zu beginn des Seitenaufrufs läd und nicht erst wenn der HTML (s.o.) geladen wird.
Vielen Dank im voraus!
gruß,
Marco
ich habe mit Hilfe eines Tutorials einen ProduktSlider (ähnlich wie der von apple.de) gebaut, nun habe ich folgendes Problem, im Tutorial wird der Slider beim Laden der Seite gestartet, da der Slider bei mir aber nicht von beginn an auf der Homepage ist, sondern erst später mit (appendTo) der Seite hinugefügt wird, kann das Script beim Laden der Seite natürlich den Slider nicht finden und somit bleibt er ohne Funktion.
Hier Ausschnitte aus dem Code:
CSS:
Code:
#sliderGallery {
background: url(../img/product_slider_bg.png) no-repeat;
overflow: hidden;
position: relative;
padding: 10px;
height: 160px;
width: 780px;
}
#sliderGallery ul {
position: absolute;
list-style: none;
overflow: none;
white-space: nowrap;
padding: 0;
margin: 0;
}
#sliderGallery ul li {
display: inline;
margin:0;
}
#sliderGallery ul li p {
display: inline;
margin:0;
}
#slider {
width: 750px;
height: 22px;
margin-top: 140px;
margin-left: 5px;
padding: 1px;
position: relative;
background: url(../img/slider_bg.png) no-repeat;
}
#handle {
position: absolute;
cursor: move;
margin-top: 1px;
height: 22px;
width: 198px;
top: 0;
background: url(../img/slider.png) no-repeat;
background-position: 50% 0;
z-index: 100;
}
HTML:
HTML:
<div id="sliderGallery">
<ul>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header"></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header"></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
<li><img src="img/red_dot.png" width="130" height="130" alt="Header" /></li>
</ul>
<div id="slider">
<div id="handle"></div>
</div>
</div>
und zu aller letzt JS (jQuery):
Code:
$(window).ready(function () {
$('#sliderGallery').each(function () {
var ul = $('ul', this);
var productWidth = ul.innerWidth() - $(this).outerWidth();
var slider = $('#slider', this).slider({
handle: '#handle',
minValue: 0,
maxValue: productWidth,
slide: function (ev, ui) {
ul.css('left', '-' + ui.value + 'px');
},
stop: function (ev, ui) {
ul.animate({ 'left' : '-' + ui.value + 'px' }, 500, 'linear');
}
});
});
});
und genau hier liegt das Problem, da er die Funktion schon zu beginn des Seitenaufrufs läd und nicht erst wenn der HTML (s.o.) geladen wird.
Vielen Dank im voraus!
gruß,
Marco