2011-02-07 3 views
0

Мне было интересно, если кто-то может помочь с i jQuery плагином. В основном то, что я хочу сделать, это исчезать каждое изображение в DIV и когда дело доходит до последнего видимого изображения он должен идти в обратном направлении замирания вjQuery image rotator

Это то, что я сделал до сих пор:.

setTimeout((function rotate(back) { 
    if ($('img:visible', $container).length > 1) { 
     $('img:visible:last', $container).fadeOut(opts.animation, function() { 
      setTimeout(rotate, opts.interval); 
     }); 
    } else { 
     $('img:hidden:first', $container).fadeIn(opts.animation, function() { 
      setTimeout(rotate, opts.interval); 
     }); 
    } 
}), opts.interval); 

Но довольно очевидно, что вы можете видеть, что это не работает. Он начинает нормально, а затем возвращается 1 изображение, а затем вперед.

Надежда кто-то может дать мне руку на это :)

ответ

0

Fixed это сам :)

function rotate(forward, backward) { 

    if (backward == images - 1) { 
     backward = 0; 
     forward = images; 
    } 

    if (forward > 1) { 
     forward -= 1; 

     $('img:visible:last', $container).fadeOut(opts.animation, function() { 
      setTimeout(function() { rotate(forward, backward) }, opts.interval); 
     }); 
    } else { 
     backward += 1; 

     $('img:hidden:first', $container).fadeIn(opts.animation, function() { 
      setTimeout(function() { rotate(forward, backward) }, opts.interval); 
     }); 
    } 
} 

setTimeout(function() { rotate(i, i2) }, opts.interval); 
1

Вы можете создать объект JQuery изображений и другой с изображениями обратными. Как только у вас есть это, должно быть относительно просто делать то, что вы хотите. то есть сначала fadeOut набор изображений, затем fadeIn обратный набор изображений.

Вот как вы получаете объекты:

var $images = $('img', $container);   // Set of images 
var $segami = $($images.toArray().reverse()); // Set of images in reverse order 

С уважением Нил

Смежные вопросы