carouFredSel slideTo / slideToPage事件

时间:2013-03-14 18:10:45

标签: jquery caroufredsel

使用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.我无法弄清楚模式或我是否正在做首先是错误的。

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

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

2 个答案:

答案 0 :(得分:5)

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

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

查看示例here

答案 1 :(得分:3)

此代码对我有用:

$('.circular-gallery ul li')('click', function() {
  $('#fred').trigger('slideTo', $(this).index());
});