2012-03-02 9 views
27

私はそのdivにボックスシャドウを追加するdivをクラスに追加します。これはjqueryを介して動的に発生します。今度は、クラスが追加されると、シャドーエフェクトも効果なく自動的に追加されます。この場合、css経由でトランジションエフェクトを追加する方法はありますか?トランジションエフェクト付きのボックスシャドウを追加します

HTML:

<div id="box"></div> 

CSS:

#box { 
    width: 50px; 
    height: 200px; 
} 

.shadow { 
    -webkit-box-shadow: 0px 0px 4px 2px #D50E0E; 
    -moz-box-shadow: 0px 0px 4px 2px #D50E0E; 
    box-shadow: 0px 0px 4px 2px #D50E0E; 
} 
+0

コードはどこにありますか? –

+0

どのような影響がありますか?フェードインのように? – j08691

+0

'#box'にトランジションを追加することができます。構文を検索するだけです。 – mreq

答えて

49

はい、単にCSSにtransition(またはベンダー接頭辞のバージョン)を追加します。

$('#t').click(
 
    function(){ 
 
    $('#box').toggleClass('shadow'); 
 
    });
#box { 
 
    width: 50px; 
 
    height: 200px; 
 
    -webkit-transition: all 1s linear; 
 
    -o-transition: all 1s linear; 
 
    -moz-transition: all 1s linear; 
 
    -ms-transition: all 1s linear; 
 
    -kthtml-transition: all 1s linear; 
 
    transition: all 1s linear; 
 
} 
 

 
.shadow { 
 
    -webkit-box-shadow: 0px 0px 4px 2px #D50E0E; 
 
    -moz-box-shadow: 0px 0px 4px 2px #D50E0E; 
 
    box-shadow: 0px 0px 4px 2px #D50E0E; 
 
    -webkit-transition: all 1s linear; 
 
    -o-transition: all 1s linear; 
 
    -moz-transition: all 1s linear; 
 
    -ms-transition: all 1s linear; 
 
    -kthtml-transition: all 1s linear; 
 
    transition: all 1s linear; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="t">Toggle the 'shadow' class</button> 
 

 
<div id="box">Some content in the 'box' div.</div>

JS Fiddle demo

参考文献:

+1

完璧。ありがとう.. .. – user10

+0

ありがとう! :-) –

+0

完璧ですが、私は1秒が長くてかわいいと思いますが。 0.1秒か0.2秒かと思っていいです。しかし、非常に役に立つヒントですが、ありがとう! –

関連する問題