2

我在将 carouFredSel 用作带有控件以转到特定幻灯片的无限圆形滑块时遇到了一些麻烦。这是我的实现代码:

$('.circular-gallery ul').carouFredSel({
    width: '100%',
    height:270,
    align:'center',
    items: {
        start: 10,
        width:340,
        visible: 10
    },
    prev: {
        button: $('.circular-gallery .prev')
    },
    next: {
        button: $('.circular-gallery .next')
    },
    scroll: {
        items: 1,
        easing: 'quadratic',
        onBefore: function(data){
            var $current = $(data.items.visible[4]);
            if(!data.scroll.duration){ // this happens on init, so just set active class
                $current.addClass('active');
            } else {
                var $active = $('.circular-gallery ul li.active');
                $active.find('.physician-name').fadeOut('normal', function(){
                    $(this).css('display','block').css('visibility','hidden');
                    $active.removeClass('active');
                });
                $current.find('.physician-name').css('visibility','visible').hide().fadeIn('normal', function(){
                    $current.addClass('active');
                });
            }
        }
    },
    auto: {
        play: false
    }
});

var $items = {};
$('.physician').hoverIntent(function(){
    slideToPhysician($(this).attr('rel'));
}, function(){ return false; });

function slideToPhysician(rel){
    var $items = $('.circular-gallery ul li').trigger('currentVisible');
    var index = $items.index($('li.'+rel));
    //console.log(index);
    //$('.circular-gallery ul').trigger('slideToPage', index);
    $('.circular-gallery ul').trigger('slideTo', index);
}

问题是每个元素的索引不是恒定的。每次滑块移动时它都会改变。所以我很难确定要滑到哪一个。我的滑块中的每个 li 都有类,并使用链接上的“rel”属性将相应的类传递给 hoverIntent 事件。在调试过程中,如果我翻转相同的名称,我可能会得到 6 的索引,然后它会滑到某个幻灯片,如果我再次翻转它,我会得到 10。我无法弄清楚模式或者我正在做首先是错误的。

也许我刚刚做错了什么,但目标是在页面中心有一个带有“突出显示”项目的滑块,然后如果您将鼠标悬停在名称上几秒钟,滑块就会移动到该特定照片。

感谢您抽出宝贵时间提供帮助!

4

2 回答 2

5

我通过将数组作为参数传递给slideToEvent 解决了几乎相同的问题。它包含点击的项目和 carouFredSel 项目索引:

$li.on('click', function() {
  var index = 0;
  $('#fred').trigger('slideTo', [$(this), index]);
});

在此处查看示例

于 2013-04-18T11:16:48.683 回答
3

这段代码对我有用:

$('.circular-gallery ul li')('click', function() {
  $('#fred').trigger('slideTo', $(this).index());
});
于 2013-12-15T20:46:39.927 回答