Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add box shadow with transition effect

Tags:

html

css

I'm adding a class to a div that adds a box shadow to that div. This happens dynamically via jquery. Now, when the class is added, the shadow effect is added automatically as well, without any effect. Is there a way to add some transition effect via css in this case?

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; } 
like image 886
King Julien Avatar asked Mar 02 '12 21:03

King Julien


People also ask

Does transition work with box shadow?

Adding a CSS transition to animate the box-shadow of an element is a handy trick. It's a design technique that's often used on hover to highlight something. If you've used this effect you might have noticed that sometimes the performance can be sub optimal making the animation slow.


1 Answers

Yes, simply add the transition (or the vendor-prefixed versions) to the CSS:

$('#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.

References:

  • click().
  • toggleClass().
like image 80
David Thomas Avatar answered Sep 21 '22 13:09

David Thomas