【问题标题】:JQuery Cycle Plugin Shuffle RightjQuery Cycle Plugin 正确随机播放
【发布时间】:2012-01-09 22:47:26
【问题描述】:

已修复!不敢相信我以前没见过这个:

$('#s4') 
        .before('<div id="nav">') 
        .cycle({ 
            fx:     'shuffle', 
            speed:  500, 
            shuffle: { top:15, left: 300 },
            timeout: 0, 
            pager:  '#nav',
            cleartypeNoBg:true
    });

您可以在此处选择随机播放动画。我的设置为 top:15 和 left:300


我正在尝试使用 Cycle 插件,但我需要它向右而不是向左随机播放。我通过更改成功地做到了这一点

opts.shuffle = opts.shuffle || {left:-w, top:15};

opts.shuffle = opts.shuffle || {left:+w, top:15};

唯一的问题是我正在洗牌的图像非常大,并且在图像之间的转换过程中创建了一个水平滚动条。当它向左移动并且我不确定我错过了什么时,这不会发生。下面是随机播放效果的 sn-p。任何帮助表示赞赏!

// shuffle
$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
    var i, w = $cont.css('overflow', 'visible').width();
    $slides.css({left: 0, top: 0});
    opts.before.push(function(curr,next,opts) {
        $.fn.cycle.commonReset(curr,next,opts,true,true,true);
    });
    // only adjust speed once!
    if (!opts.speedAdjusted) {
        opts.speed = opts.speed / 2; // shuffle has 2 transitions
        opts.speedAdjusted = true;
    }
    opts.random = 0;
    opts.shuffle = opts.shuffle || {left:+w, top:15};
    opts.els = [];
    for (i=0; i < $slides.length; i++)
        opts.els.push($slides[i]);

    for (i=0; i < opts.currSlide; i++)
        opts.els.push(opts.els.shift());

    // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
    opts.fxFn = function(curr, next, opts, cb, fwd) {
        var $el = fwd ? $(curr) : $(next);
        $(next).css(opts.cssBefore);
        var count = opts.slideCount;
        $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
            var hops = $.fn.cycle.hopsFromLast(opts, fwd);
            for (var k=0; k < hops; k++)
                fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
            if (fwd) {
                for (var i=0, len=opts.els.length; i < len; i++)
                    $(opts.els[i]).css('z-index', len-i+count);
            }
            else {
                var z = $(curr).css('z-index');
                $el.css('z-index', parseInt(z)+1+count);
            }
            $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
                $(fwd ? this : curr).hide();
                if (cb) cb();
            });
        });
    };
    opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
};

HTML

<div id="contentAreaJS" class="contentArea">
    <div id="s4" class="pics">
        <div id="navlist">
        <ul>
            <li id="mon"><a href="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilisLightbox_fajitas.png" style="text-decoration:none;" rel="shadowbox;width=500;height=400;"></a></li>
            <li id="tue"><a href="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilisLightbox_tacos.png" style="text-decoration:none;" rel="shadowbox;width=500;height=400;"></a></li>
            <li id="wed"><a href="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilisLightbox_chips.png" style="text-decoration:none;" rel="shadowbox;width=500;height=400;"></a></li>
            <li id="thur"><a href="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilisLightbox_dessert.png" style="text-decoration:none;" rel="shadowbox;width=500;height=400;"></a></li>
            <li id="fri"><a href="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilisLightbox_burger.png" style="text-decoration:none;" rel="shadowbox;width=500;height=400;"></a></li>
        </ul>
    </div>
        <a href="https://www.chilistogo.com/Pages/Welcome.aspx" target="_blank"><img src="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilispartyPlatters.png" height="237" width="769" /></a>
    <a href="http://www.chilis.com/EN/HappyHours/001.005.0609.pdf" target="_blank"><img src="http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/ChilishappyHour.png" height="237" width="769" /></a>
        </div>     
    </div>

【问题讨论】:

    标签: jquery plugins jquery-plugins cycle shuffle


    【解决方案1】:

    您没有发布任何 html,而是将 overflow: hidden 添加到溢出的容器的 css 中(获取滚动条)。您可能需要使用 before/after 挂钩来控制它,以便在转换完成后页面布局恢复正常。

    【讨论】:

    • 可能是前/后挂钩。我尝试更改溢出,图像看起来像是消失在看不见的墙后面。
    猜你喜欢
    • 2014-09-09
    • 2013-03-06
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多