jQuery jCarousel (не lite) и колесо мыши. нужна помощь

#javascript #jquery #jcarousel #mousewheel

#javascript #jquery #jcarousel #колесо мыши

Вопрос:

Я использую приведенные ниже js-файлы:

 jquery-1.4.2.min.js
include/jcarousel/lib/jquery.jcarousel.min.js
include/mousewheel/jquery.mousewheel.js
  

в моем index.php файл, который я получил :

  jQuery(document).ready(function() {
jQuery('#mycarousel').mousewheel(function(event, delta) {
                    if (delta > 0)
                    {carousel.prev();}
                    else if (delta < 0)
                    {carousel.next();}
        });
jQuery('#mycarousel').jcarousel({

    size: mycarousel_itemList.length,
    itemLoadCallback: {onBeforeAnimation: mycarousel_itemLoadCallback},
visible: 3,
btnNext: null,
 btnPrev: null,

});

});
  

Я считаю, что проблема в

 {carousel.prev();}
{carousel.next();}
  

Я хочу добавить колесо мыши в мою jcarousel, но я не могу найти подходящую функцию, которая вызывается при прокрутке моего колеса.
Пожалуйста, помогите мне. Возможно, потребуется дополнительная информация. До сих пор я справляюсь самостоятельно. 🙁

Ответ №1:

carousel.prev(); и carousel.next(); не будут работать, поскольку carousel не определен. Вам нужно указать функцию обратного вызова, в которой вы можете затем вручную запускать функции карусели.

Например:

 jQuery('#mycarousel').jcarousel({    
    size: mycarousel_itemList.length,
    itemLoadCallback: {onBeforeAnimation: mycarousel_itemLoadCallback},
    visible: 3,
    btnNext: null,
    btnPrev: null,
    // The callback function to run
    initCallback: mycarousel_initCallback,    
});

function mycarousel_initCallback(carousel) {
    // All code referencing the carousel in here.
    jQuery('#mycarousel').mousewheel(function(event, delta) {
        if (delta > 0)
            {carousel.prev();}
        else if (delta < 0)
            {carousel.next();}
        });

}
  

Подробнее читайте здесь, в этом примере:http://sorgalla.com/projects/jcarousel/examples/static_controls.html

Надеюсь, это поможет!

Ответ №2:

Вставьте мой фрагмент кода в свой jquery.jcarousel.js после этой строки:

$(window).bind(‘load.jcarousel’, функция() { windowLoaded = true; });

 // Activate the mouse wheel function --------------------------
$('.jcarousel').bind('mousewheel', function(event, delta) {
    if (delta > 0)
        self.prev();
    else if (delta < 0)
        self.next();
});