0

サイトの一部のスライダーにCycle2プラグイン(http://jquery.malsup.com/cycle2/)を使用しており、現在のスライドに含まれる各画像からインラインスタイルを検出し、それを親に渡す必要がありますスライドごとにスライダーの周囲の背景色を変更するためのdiv。

スライダーからの出力は次のようになります。

<div class="cycle-slideshow" data-cycle-fx="fade" data-cycle-timeout="0" data-cycle-slides="div" data-cycle-prev="#previous" data-cycle-next="#next" data-cycle-swipe="true" data-cycle-pager="#no-template-pager" data-cycle-pager-template="" style="position: relative;">
<div class="cycle-sentinel cycle-slide" style="position: static; top: 0px; left: 0px; z-index: 100; opacity: 1; visibility: hidden; display: block;">
    <a href="#"><img style="background-color: #ff0000;" src="http://cambelt.co/1070x400/Rotator1?color=cccccc,ffffff" alt="fsadfsdfas"></a>
</div>
<div class="slide cycle-slide cycle-slide-active" style="position: absolute; top: 0px; left: 0px; z-index: 100; opacity: 1;">
    <a href="#"><img style="background-color: #ff0000;" src="http://cambelt.co/1070x400/Rotator1?color=cccccc,ffffff" alt="fsadfsdfas"></a>
</div>
<div class="slide cycle-slide" style="position: absolute; top: 0px; left: 0px; z-index: 99; display: none;">
    <a href="#"><img src="http://cambelt.co/1070x400/Rotator2?color=cccccc,ffffff" alt=""></a>
</div>
<div class="slide cycle-slide" style="position: absolute; top: 0px; left: 0px; z-index: 97; display: none;">
    <a href="#"><img src="http://cambelt.co/1070x400/Rotator3?color=cccccc,ffffff" alt=""></a></div>
<div class="slide cycle-slide" style="position: absolute; top: 0px; left: 0px; z-index: 96; display: none;"><a href="#"><img src="http://cambelt.co/1070x400/Rotator4?color=cccccc,ffffff" alt=""></a>
</div>
</div>

親のdivはスライダー(.home-rotator-wrap)の上にあり、ウィンドウの幅にまたがっています。これまでのところ私はこれを持っていますが、私はかなり離れていると確信しています。

$('.home-rotator-wrap > .cycle-slide-active > img').cycle(function() {
    var slideBG = $(this).attr('style');
    $('.home-rotator-wrap').attr('style', slideBG);
});
4

1 に答える 1

2

まず、「data-cycle-timeout」を0以外に設定する必要があります。画像はまったく表示されませんでした。コードは次のとおりです。

$('.cycle-slideshow').on('cycle-before', function (event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) {
    var bg = $(incomingSlideEl).find('img').css('backgroundColor'); // get background style from each image
    $('body').css('background', bg); // set background color from var
});

デモ、JSFiddle

于 2013-03-27T12:39:48.070 に答える