Попытка вставить плагин jquery-mousewheel в цикл jquery2

Я пытаюсь интегрировать плагин jquery-mousewheel (https://github.com/jquery/jquery-mousewheel) с плагином - плагин jquery cycle2.

Все было хорошо, пока я не обнаружил, что прокрутка мышью вызывает множество событий прокрутки, особенно с новыми «волшебными» трекпадами и мышами, которые создают большую инерцию в колесе.

На GitHub я нашел плагин (https://github.com/amondit/jquery.scrollsteps.js), созданный специально для этого плагина для решения этой проблемы.

Я использовал файл jquery.scrollsteps-full-min.js.

Вот как я называю плагин:

$(function() {

    var $slider = $('.slider_overlay');

    // slider initialize
    $slider.cycle({
        fx: 'scrollVert',
        timeout: 0,
        pager: '.slider_list',
        pagerTemplate: '',
        pagerActiveClass: 'active_slide',
        slides: '> div',
        centerHorz: true,
        centerVert: true,
        speed: 1000
    });

    // initialize scrollsteps plugin
    $slider.scrollsteps({
        up: $slider.cycle('prev'),
        down: $slider.cycle('next')
    });

});

И когда я начинаю прокручивать страницу вверх и вниз, я получаю следующее сообщение об ошибке из консоли firebug:

"TypeError: i.down не является функцией" или "TypeError: i.up не является функцией"

Возможно, у кого-то есть идеи или мысли, почему может возникать эта ошибка?

Если я использую инициализацию колесика мыши по умолчанию (без плагина scrollsteps) - все работает нормально:

$slider.mousewheel(function(e) {
    if (e.deltaY > 0) {
        $slider.cycle('prev');
    } else {
        $slider.cycle('next');
    }
});

но, как я уже упоминал, это вызывает множество событий прокрутки.

Может я неправильно решаю эту задачу? Если кто-то знает другие решения - буду очень признателен за помощь.


person Web Master    schedule 06.03.2015    source источник


Ответы (1)


Ответ )

$(function() {

    var $slider = $('.slider_overlay');

    $slider.cycle({
        fx: 'scrollVert',
        timeout: 0,
        pager: '.slider_list'
        pagerTemplate: '',
        pagerActiveClass: 'active_slide',
        slides: '> div',
        centerHorz: true,
        centerVert: true,
        speed: 1000
    });

    function prev() {
        $slider.cycle('prev')
    }

    function next() {
        $slider.cycle('next')
    }

    $slider.scrollsteps({
        up: prev,
        down: next
    });

});
person Web Master    schedule 10.03.2015