2016-10-26 9 views
1

別の要素をクリックしたときに背景色を.top-barz要素に追加しようとしていますが、1秒間アニメーションとして作成したいと考えています。私はかなりjavascriptに新しいとそのことを行う方法がわからない?Javascript - 時間間隔で背景色の不透明度を変更する

私はこのコードが出ているrgba(36,36,36, 1)

rgba(36,36,36, .1)の変更の不透明度からアニメーションやクリック機能に私にそれを置くしたいと思いますが、これは明らかに動作していない:

var topBar = setInterval(function(){ topBarBackground() }, 1000); 

function topBarBackground() { 
    for (var i = 1; i <= 9; i++) { 
    $('.top-barz').css('background-color', 'rgba(36,36,36,.' + i + ')'); 
    } 
} 

clearInterval(topBar); 
+0

使用CSSを細かい動作しているようだと私はそれを行うだろうかjqueryの –

+0

をクリックの上にクラスを追加することです? – Leff

答えて

0

あなたは

を始めるためにいくつかのサンプルコードでjQueryの

$('.button').on('click', function() { 
$('.top-barz').addClass('new-color'); 
}); 

CSS

.top-barz { 
background-color:#000; 
-webkit-transition: background-color 1s linear; 
-moz-transition: background-color 1s linear; 
-o-transition: background-color 1s linear; 
-ms-transition: background-color 1s linear; 
transition: background-color 1s linear; 
} 

.top-barz.new-color { 
background-color:#eee; 
} 

明らかに、デザインに必要な色に変更します。

EDITここ

Fiddle

私の最後にクロムに移行の

+0

あなたの提案を試してみましたが、要素にクラスを追加しているようですが、色は変更されず、クロムブラウザのinspect要素にはクラスが実際に適用されていることが示されていません。 – Leff

+0

私はSassを使用しており、より多くのscssファイルを持っている可能性がありますか? – Leff

+0

上記の私のフィドルを見てください –

0

jQueryのfadeIn関数を検討することができます。

$('.top-barz').fadeIn(10000); 
0

マイケルマッコイは、彼のコメントで完全に正しいです。 CSSを使うとGPUアクセラレーションの恩恵を受けると同じことをやっていますが、コードを軽くすることができます。

これは離れて、あなたのコードは、2個のエラーがあります。とにかくvar i

_

function topBarBackground() { 
    for (var i = 1; i < 9; i++) { 
     $('.top-barz').css("background-color", "rgba(36,36,36,." + i + ")"); 
     } 
} 

var myVar = setInterval(function(){topBarBackground()}, 1000); 

を逃すi++

  • を逃す

    • を、このアイデアをドロップします。

      だから、クラスを追加するだけで$('.top-barz').addClass('changedColor');

      とCSSでの操作を行います。ここでは

      .top-barz { 
          background-color: rgba(36,36,36,.1); 
          -webkit-transition: 1s; 
          -o-transition: 1s; 
          transition: 1s; 
      } 
      .top-barz.changedColor { 
          background-color: rgba(36,36,36,1); 
      } 
      
  • +0

    彼が答えを投稿したので、@michael McCoyの答えを受け入れてください。彼は最初だった。あなたも '++'を修正しました;) – antoni

    +0

    ありがとうございます。何らかの理由で実際のクラスが要素に適用されていない場合は追加されますが、実際にはクロムインスペクタのどこにも表示されません適用されますか? – Leff

    関連する問題