Цикл jQuery. Что останавливает слайд и почему не работает animate ()? - PullRequest
0 голосов
/ 26 ноября 2011

У меня запущено слайд-шоу из 5 фотографий, и я хочу использовать функцию animate (), когда она перемещается на 4-ую фотографию.Вместо запуска animate (); слайд-шоу останавливается при переходе к 4-му.Что происходит ??

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.cycle.all.js"></script>
<script type="text/javascript">
$(function() {
$('#slideshow').cycle({
    fx:       'fadeZoom',
    timeout:   2000,
    pagerAnchorBuilder: function(idx, slide) {
        // return sel string for existing anchor
        return '#nav li:eq(' + (idx) + ') a';
    } ,
    after:     onAfter,
});
});

function onAfter(curr,next,opts) {
var caption = (opts.currSlide + 1);
$('#caption').html(caption);
var number = $('#caption').html();
if(caption == "4"){
     $('#nav_content').animate({
            left: pos.left - 180
            }, 500);
        };
};
</script>

Спасибо!

1 Ответ

0 голосов
/ 27 ноября 2011

Забыл определить переменную "pos" в функции.Теперь все работает как положено.

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.cycle.all.js"></script>
<script type="text/javascript">
$(function() {
$('#slideshow').cycle({
    fx:       'fadeZoom',
    timeout:   2000,
    pagerAnchorBuilder: function(idx, slide) {
        // return sel string for existing anchor
        return '#nav li:eq(' + (idx) + ') a';
    } ,
    after:     onAfter,
});
});

function onAfter(curr,next,opts) {
var caption = (opts.currSlide + 1);
$('#caption').html(caption);
var number = $('#caption').html();
var c = $('#nav_content');
    var pos = c.position();
    var w = c.width();
    var status = w + pos.left;
    var dif = w - 190;
    var x = w + dif;
if(caption == "4"){
     $('#nav_content').animate({
            left: pos.left - 180
        }, 500);
    };
    if(caption == "1" & pos.left < 0){
     $('#nav_content').animate({
            left: pos.left + 180
        }, 500);
    };
};
...