jCarousel - как сделать паузу при наведении с автопрокруткой?

JCarousel недавно изменился (январь 2011 г.).
Раньше в нем был способ реализовать паузу при наведении с помощью автопрокрутки.

В новой версии я не могу решить, как заставить автопрокрутку останавливаться при наведении курсора:
Я хочу, чтобы прокрутка останавливалась при наведении курсора мыши и начиналась снова при ее отсутствии.
Есть предложения?

Пример кода здесь — http://testsite3.dk/jcarousel/
Jcarousel здесь: github.com/jsor/jcarousel< бр>

Ссылка на JQuery + javascript для загрузки превью здесь - http://testsite3.dk/jcarousel/autoscroll.txt


person user1152435    schedule 16.01.2012    source источник
comment
Эта проблема была исправлена. Пожалуйста, посмотрите: code.google.com/p/ jcarausel-lite-pause-on-hover-fixed   -  person saikatbiswas82    schedule 23.05.2012
comment
@saikatbiswas82 Похоже, ваша версия jcarousellite не работает.   -  person Muhd    schedule 27.11.2012
comment
Для тех, кто хочет реализовать это в jcarousellite, см. stackoverflow.com/questions/8013595/   -  person Muhd    schedule 27.11.2012


Ответы (4)


добавьте этот код в свой jcarousel initCallback(carousel)

 carousel.clip.hover(function() {
    carousel.stopAuto();
}, function() {
    carousel.startAuto();
}); 
person mkp    schedule 22.03.2012

Я не мог заставить работать предыдущие примеры. Но я получил следующее для работы с последней версией jcarousel.

$('.carousel').jcarouselAutoscroll(
{
    interval: 4000, 
    scroll: '+=1',
    create: $('.carousel').hover(function() 
    {
        $(this).jcarouselAutoscroll('stop');
    },
    function() 
    {
        $(this).jcarouselAutoscroll('start');
    });
});
person Rona Kilmer    schedule 15.06.2012
comment
Попробовал это и получил Uncaught Error: Cannot call methods on jcarouselAutoscroll prior to initialization; attempted to call method "stop" - person Howdy_McGee; 14.04.2014
comment
@Howdy_McGee, вам нужно было вызвать $('.carousel').jcarousel(); перед вызовом $('.carousel').jcarouselAutoscroll(); - person metamaker; 30.07.2017

Обновление ответа, чтобы оставаться в курсе.

См. https://github.com/jsor/jcarousel/issues/568 для правильного отвечать:

$('.jcarousel').hover(function() {
    $(this).jcarouselAutoscroll('stop');
}, function() {
    $(this).jcarouselAutoscroll('start');
});
person emd    schedule 14.08.2014

Вы можете привязать свои собственные события наведения в обратном вызове create:

  .jcarouselAutoscroll({
    autostart: true,
    interval: 1000,
    scroll: '+=3',
    create: $('#thumbs').bind('mouseenter', function () {
                $(this).jcarouselAutoscroll('option', 'scroll', '+=0' );
            }).bind('mouseleave', function () {
                $(this).jcarouselAutoscroll('option', 'scroll', '+=3' );
            })

  });
person shaunsantacruz    schedule 16.01.2012
comment
Привет - спасибо за ваш ответ. Это работает как шарм на демо. Он будет использоваться на сайте, где из Vimeo извлекаются миниатюры, а щелчок по ней загружает видео на страницу. Прокрутка здесь тоже работает нормально, видео загружается, как и ожидалось, а прокрутка начинается и останавливается при входе и выходе из мыши. Однако: если я останавливаюсь над большими пальцами дольше, чем просто щелчок, что-то вроде 5 сек. прокрутка останавливается, но не начинается снова при нажатии кнопки мыши (?). Я включил ссылку на javascript, используемый для загрузки превью в вопросе. Я не могу дать ссылку на тестовый сайт, извините, предложения будут очень кстати. - person user1152435; 18.01.2012
comment
Запускается ли событие mouseleave, когда оно не работает должным образом? - person shaunsantacruz; 18.01.2012
comment
Если я наблюдаю за прокруткой в ​​Firebug, я вижу, что ритм прокрутки продолжается, даже если большие пальцы не прокручивают экран. Это есть и в Примере, и на Сайте. Код примера продолжается, как и ожидалось. Однако на сайте (где превью загружаются из Vimeo) я вижу прокрутку только один раз и больше не вижу. (Соответствует тому, что он работает только в том случае, если наведение не продлевается). Кажется, его нужно как-то снова начать.... - person user1152435; 19.01.2012