【问题标题】:CarouFredSel Example #61 - Vertical instead of HorizontalCarouFredSel 示例 #61 - 垂直而不是水平
【发布时间】:2014-02-18 18:00:44
【问题描述】:

我正在尝试修改此处设置的示例:

http://coolcarousels.frebsite.nl/c/61/

...垂直显示缩略图,而不是水平显示。

DEMO

我已经设置好所有东西,并且轮播运行正常,但我现在要克服的障碍是突出显示的缩略图出现在顶部而不是中间(我将缩略图倒计时到 3)。

这是运行轮播的 Javascript 的修改版本:

$(function() {
    var $carousel = $('#carousel'),
        $pager = $('#pager');

    function getCenterThumb() {
        var $visible = $pager.triggerHandler( 'currentVisible' ),
            center = Math.floor($visible.length / 2);
        return center;
    }

    $carousel.carouFredSel({
        responsive: true,
        items: {
            visible: 1,
            width: 746,
            height: (214/746*100) + '%'
        },
        scroll: {
            fx: 'scroll',
            onBefore: function( data ) {
                var src = data.items.visible.first().attr( 'src' );
                src = src.split( '/large/' ).join( '/small/' );

                $pager.trigger( 'slideTo', [ 'img[src="'+ src +'"]', -getCenterThumb() ] );
                $pager.find( 'img' ).removeClass( 'selected' );
            },
            onAfter: function() {
                $pager.find( 'img' ).eq( getCenterThumb() ).addClass( 'selected' );
            }
        },
        pagination: {
            container: '#nav'
        },
        duration: 10000,
    });

    $pager.carouFredSel({
        width: '252px',
        direction: 'up',
        auto: false,
        items: {
            visible: '1',
            width: 252,
            height: (71/252*100) + '%'
        },
        scroll:{
            items: '3',
        },
        onCreate: function() {
            var center = getCenterThumb();
            $pager.trigger( 'slideTo', [ -center, { duration: 0 } ] );
            $pager.find( 'img' ).eq( center ).addClass( 'selected' );
        }
    });

    $pager.find( 'img' ).click(function() {
        var src = $(this).attr( 'src' );
        src = src.split( '/small/' ).join( '/large/' );
        $carousel.trigger( 'slideTo', [ 'img[src="'+ src +'"]' ] );
    });

    $('#nav').hover(function() {
        var current = $('#carousel').triggerHandler( 'currentPosition' );
        thumbs.trigger( 'slideTo', [ current, 0, true, { fx: 'none' } ] );
        $('#thumbs').stop().fadeTo(300, 1);
    }, function() {
        $('#thumbs').stop().fadeTo(300, 0);
    });

    $('#nav a').mouseenter(function() {
        var index = $('#nav a').index( $(this) );

        //  clear the queue
        thumbs.trigger( 'queue', [[]] );

        //  scroll
        thumbs.trigger( 'slideTo', [index, { queue: true }] );
    });
});

有人知道如何将 SELECTED 缩略图从堆栈中的第一个更改为第二个并仍然与主轮播对齐吗?

编辑:我以为我在发布有关此轮播的另一个问题的赏金。所以我会添加我想做的另一个点。

如何修改代码以允许图像包含在 DIV 中并且仍然按照我上面所述的方式运行?我玩弄了 src 变量和触发器调用,但在实现我的目标方面运气不佳。

【问题讨论】:

  • 你能创建一个演示吗?
  • jsfiddle.net/murphy1976/7XGtM 这个 jFiddle 解决了 VERTICAL 滚动,但我无法弄清楚如何将图像包装在 DIV 中并且仍然让代码正常工作。 FULL BOUNTY 将需要解决这个难题。
  • 要更多地了解我想要做什么,以及赏金应该是什么(我很抱歉将这个问题设置为赏金,这是我的第一个问题),请查看这个问题: stackoverflow.com/questions/22177804/image-billboard-issues
  • 不幸的是,JSFiddle 不适合我。有一些控制台错误
  • @Murphy1976 你的 js 中有 thumb 和 $('#thumbs') 但你的 html 中没有

标签: javascript jquery customization caroufredsel


【解决方案1】:

http://jsbin.com/geqakupe/10/edit

我在on before事件中更改了这一行:var src = data.items.visible.first().find('img').attr( 'src' );并添加了这个css规则:

#carousel div{
   position:relative;
}
#carousel {
   width: 800px;
   height: 500px;
   overflow: hidden;
   position:relative;
}
#carousel h1{
   position:absolute;
   top:0;
   left:105px;
   font-size:30px;
  color:red;
}

【讨论】:

  • 我目前正在等待块被释放,以便我可以奖励你的赏金。
【解决方案2】:

我想这个例子会对你有所帮助: http://jsbin.com/geqakupe/4/edit

您应该设置directon:"up"height:"100%" 选项。您还需要更改定位元素#pager-wrapper,并为其设置不同的heightwidth

【讨论】:

  • 正如问题的附加 cmets 中所述,我已经弄清楚了那部分,我的意思是将赏金放在另一个处理同一轮播的问题上,但我需要将轮播图像包装在DIV。对于造成的混乱,我深表歉意。
猜你喜欢
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
  • 2017-09-09
  • 2021-10-03
相关资源
最近更新 更多