Разная анимация для Nivo slider

Опубликовано 2014.03.28

У слайдера Nivo slider есть один существенный недостаток - одинаковая анимация для смены картинок. То есть если листать картинки как влево, так и вправо - анимация всегда будет одной и той-же. Это не всегда выглядит красиво. Победить эту проблему получилось только патчем библиотеки. Я приведу пример и приложу исходник. Открывайте jquery.nivo.slider.js и ищите текст // Get our vars, это примерно 290 строка. Добавьте после неё следующую строчку:
  1. var slide_bilo = $('div.nivo-controlNav a.active').attr('rel');
Затем найдите текст // Run effects, это примерно 360 строка. Добавьте перед ней следующий код:
  1. if(nudge === 'prev'){
  2. currentEffect = 'slideInLeft';
  3. }
  4. else if (nudge === 'next'){
  5. currentEffect = 'slideInRight';
  6. }
  7. else if (nudge === 'control'){
  8. var slide_stalo = $('div.nivo-controlNav a.active').attr('rel');
  9. var razn = slide_bilo - slide_stalo;
  10. if(razn > 0){
  11. currentEffect = 'slideInLeft';
  12. }else{
  13. currentEffect = 'slideInRight';
  14. }
  15. }
Готово. Теперь при прокрутке влево будет одна анимация, а при прокрутке вправо - другая. Код будет работать при клике на кнопки "влево/вправо", при клике на кнопки навигации и при автоматической смене слайдов.