2016-07-22 14 views
0

設定はこれです。 クライアントのロゴを含むスライダ。一度に1つずつ表示されます。 親のdivの背景色を各クライアント(とH1)の特定のブランドカラーに変更したいと思います。可能であればアニメーション化。各スライドの滑らかなスライダの背景色の変更

どうすればいいですか?

私のHTML - コンテンツラッパーのセクションdivとh1の背景色を変更したいと思います。

 <div class="section clients section-text-right"> 
     <div class="content-wrapper"> 
      <h1>Clients</h1> 
      <div class="frontpage-client-slick slick-theme-frontpage"> 
       <div class="scouts"><img src="images/client-logos/[email protected]"></div> 
       <div class="jjd"><img src="images/client-logos/[email protected]"></div> 
       <div class="unipension"><img src="images/client-logos/[email protected]"></div> 
       <div class="dr"><img src="images/client-logos/[email protected]"></div> 
       <div class="verdensborn"><img src="images/client-logos/[email protected]"></div> 
       <div class="fi"><img src="images/client-logos/[email protected]"></div> 
       <div class="midtlink"><img src="images/client-logos/[email protected]"></div> 
      </div> 
     </div> 
    </div> 

スリックスライダーは - 私はbeforeChangeに何かをする必要がある知っている、私はちょうど何を知りません。

$('.frontpage-client-slick').slick({ 
    slidesToShow: 1, 
    slidesToScroll: 1, 
    arrows: true, 
    infinite: true, 
    speed: 1000, 
    autoplay: true, 
    autoplaySpeed: 4000, 
    fade: true, 
    centerMode: true 
}); 
$('.frontpage-client-slick').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 
    console.log(nextSlide); 
}); 

答えて

1

スライド要素を取得し、jQueryと.css()などを使用して背景色を設定する必要があります。

滑らかなオブジェクトは、スライドが$スライドに保存されるので、nextSlideによって提供されるインデックスからアクセスできます。

私はあなたのために働いてfiddleを作成しました:答えを

var $slideContainter = $('.frontpage-client-slick'), 
    $slider = $slideContainter.slick({ 
     slidesToShow: 1, 
     slidesToScroll: 1, 
     arrows: true, 
     infinite: true, 
     speed: 1000, 
     autoplay: true, 
     autoplaySpeed: 4000, 
     fade: true, 
     centerMode: true 
    }), 
    colorSettings = { 
     headline: ['red', 'blue', 'yellow','red', 'blue', 'yellow','blue'], 
     section: ['blue', 'yellow','red', 'blue', 'yellow','blue', 'red'] 
    }, 
    changeColors = function (slide) { 
     $slideContainter.siblings('h1').animate({ 
     color: colorSettings.headline[slide] 
    }, 1000); 

    $slideContainter.parentsUntil('.section').animate({ 
     backgroundColor: colorSettings.section[slide] 
    }, 1000); 
    }; 

// Initial call to set color 
changeColors(0); 

$slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){ 
    changeColors(nextSlide); 
}); 
+0

感謝を。 私の無知を許しますが、無作為の色を探していません。私は各スライドに特有の色が必要です。したがって、スライド.scoutがアクティブな場合、.sectionの背景が特定の色に変わります。 –

+0

ちょうど例のランダムな色を追加しました。色情報はどこから来るべきですか?クラス?そうでない場合、javascriptを使用してカラーをインラインに設定するには、$ slideContainter.siblings( 'h1')を使用します。css({color: '#000000'});例えば黒に設定する。 – hyde

+0

サンプルコードを更新しました。色を2つの配列に設定できるようになりました。色のインデックスは、0から始まるスライド番号を表します。 – hyde

関連する問題