2017-05-06 12 views
0

別のアップデート@Ivan Arambulaは、https://github.com/lokesh/color-thief,likeを使用して画像のRGBを取得する方法を見つけました。スライダー画像の色合いに基づいてメニューの色を変更する

私は色のRGBを白と黒のRGBと比較して、結果に応じてメニューの色を変えようとしています。@ cyangの回答 からのコードを使用していますが、

(index):240 Uncaught TypeError: Cannot read property 'substr' of undefined 
    at getContrastYIQ ((index):240) 
    at HTMLElement.<anonymous> ((index):247) 
    at HTMLElement.dispatch (jquery-3.2.1.min.js:3) 
    at HTMLElement.q.handle (jquery-3.2.1.min.js:3) 
    at Object.trigger (jquery-3.2.1.min.js:4) 
    at HTMLElement.<anonymous> (jquery-3.2.1.min.js:4) 
    at Function.each (jquery-3.2.1.min.js:2) 
    at r.fn.init.each (jquery-3.2.1.min.js:2) 
    at r.fn.init.trigger (jquery-3.2.1.min.js:4) 
    at $.Unslider.self.animate (unslider.js:439) 

JSコード

<script type="text/javascript"> 

$(function() { 
    var colorThief = new ColorThief(); 
    var slider = $('.my-slider').unslider(); 
    slider.on('unslider.change', function(event, index, slide) { 
    image = slide.find('img')[0]; 
    color = colorThief.getColor(image,5); 

    // color logic here 
    function getContrastYIQ(color){ 
     var r = parseInt(color.substr(0,2),16); 
     var g = parseInt(color.substr(2,2),16); 
     var b = parseInt(color.substr(4,2),16); 
     var yiq = ((r*299)+(g*587)+(b*114))/1000; 
     return yiq ; 
    } 

    var colors = getContrastYIQ(); 
    if (colors >= 128) { 
     $('.marker').css('color', 'black'); 
    }else { 
     $('.marker').css('color', 'white'); 
    } 
    }) 
}); 

</script> 

私の元の質問

非常にシンプルなjQueryスライダを使ってスライダを作った。 [http://idiot.github.io/unslider/][1]。 と私は画像の色合いに応じて色を変えたいと思う固定ハンバーガーメニューを持っています。私はたくさん検索して解決策を見つけることができませんでした。 私が使った図書館今は https://github.com/kennethcachia/background-checkです(これを使って色を変えることはできますが、スクロールしないでスクロールして他の色に切り替えることはできません)。 https://github.com/jamiebrittain/colourBrightness.js(運)
https://github.com/lokesh/color-thief(運)

あなたは私がlaravel 5.4

私のヘッダーを使用しています

素晴らしいものになることを私に行うための最善のテクニックやJSライブラリを伝えることができればコードは

<header> 
     <div class="logo"> 
      <h3>Petronius 1926</h3> 
     </div> 
    </header> 

    <!-- menu --> 
     <button type="button" class="navbar-toggle js-navToggleButton is-open"> 
     <span class="icon-bar icon-bar--first"></span> 
     <span class="icon-bar icon-bar--middle"></span> 
     <span class="icon-bar icon-bar--second"></span> 
     <span class="navbar-toggleTitle">Menu</span> 
     </button> 
     <span class="marker-left"><i class="fa fa-chevron-left" aria-hidden="true"></i></span> 
     <span class="marker"><i class="fa fa-square" aria-hidden="true"></i></span> 
     <span class="marker-right"><i class="fa fa-chevron-right" aria-hidden="true"></i></span> 

     <nav class="pushy pushy-left"> 

     <div class="pushy-content"> 

      <div class="diamond"> 
      <button type="button" class="navbar-toggle navbar-toggle--innerNav js-navToggleButton close"> 
       <span class="icon-bar icon-bar--first"></span> 
       <span class="icon-bar icon-bar--middle"></span> 
       <span class="icon-bar icon-bar--second"></span> 
      </button> 
      </div> 

      <span class="navbar-toggleTitle">Menu</span> 
      <div class="marker-inner outer"><i class="fa fa-square" aria-hidden="true"></i></div> 

      <ul> 
       <li class="pushy-link"><a href="#home" class="navbar-nav-links-item-link">Home</a></li> 
       <li class="pushy-link"><a href="#about-us" class="navbar-nav-links-item-link">Who we are</a></li> 
       <li class="pushy-link"><a href="#story" class="navbar-nav-links-item-link">How is it made</a></li> 
       <li class="pushy-link"><a href="#collection" class="navbar-nav-links-item-link">Collection</a></li> 
       <li class="pushy-link"><a href="#contact" class="navbar-nav-links-item-link">Contact</a></li> 
      </ul> 
      <div class="marker-inner inverse"><i class="fa fa-square" aria-hidden="true"></i></div> 

     </div> 
    </nav> 
    <div class="site-overlay"></div> 

My home page code is 

    @extends('layouts.master') 

    @section('styles') 
    <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> --> 
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/> 
    <link rel="stylesheet" href="/css/unslider.css"> 
    <link rel="stylesheet" href="/css/unslider-dots.css"> 
    @endsection 

    @section('title') 
     Home Page 
    @endsection 

    @section('content') 
    <div id="fullpage" class="fullpage-wrapper"> 
     <section id="home" class="my-slider"> 
     <ul> 
      @foreach($gallery as $image) 
      <li><img id="slider-image" src="{!! '/images/'.$image->image !!}" alt="Home page image slider"></li> 
      @endforeach 
     </ul> 
     </section> 

    </div> 

    @endsection 

    @section('scripts') 
    <!-- Slider --> 
    <script src="js/unslider.js"></script> 
    <script src="js/script.js"></script> 
    $(function() { 
     var colorThief = new ColorThief(); 
     var slider = $('.my-slider').unslider(); 
     slider.on('unslider.change', function(event, index, slide) { 
     image = slide.find('img')[0]; 
     color = colorThief.getColor(image,5); 

     // color logic here 
     function getContrastYIQ(color){ 
      var r = parseInt(color.substr(0,2),16); 
      var g = parseInt(color.substr(2,2),16); 
      var b = parseInt(color.substr(4,2),16); 
      var yiq = ((r*299)+(g*587)+(b*114))/1000; 
      return yiq ; 
     } 

     var colors = getContrastYIQ(); 
     if (colors >= 128) { 
      $('.marker').css('color', 'black'); 
     }else { 
      $('.marker').css('color', 'white'); 
     } 


    </script> 

    @endsection 

答えて

0

です。これを使用すると、このようなことが働く可能性があります。

$(function() { 
    var colorThief = new ColorThief(); 
    var slider = $('.my-slider').unslider(); 
    slider.on('unslider.change', function(event, index, slide) { 
    image = slide.find('img')[0]; 
    color = colorThief.getColor(image); 

    // color logic here 
    }) 
}); 
+0

私はコードを試してみましたが、それはスライドをロックし、私は、画像タグのIDにスライド作品をクラスを変更しなければならなかったが、色は、私は質問を更新します –

+0

ありがとうしない、I私が追加したコードを書きましたが、Ivan Arambulaはまだ動作していません –

+0

コンソールに何かエラーがありますか? –

関連する問題