user2865400
user2865400

Reputation: 149

Fade in background color using jQuery?

I would like to take a div and have the background fade to white on mouseenter and fade back out to black on mouseout. Any ideas on how to do this in jQuery?

Upvotes: 5

Views: 21558

Answers (3)

gordon
gordon

Reputation: 1182

OP requested jQuery. For those trying to free-hand without jQuery:

<div id="x" style="background-color:rgb(255,255,105)">hello world</div>
<script type="text/javascript">
    var unBlue=100;
    var gEvent=setInterval("toWhite();", 100);
    function toWhite(){
        if(unBlue<255) document.getElementById("x").style.backgroundColor="rgb(255,255,"+unBlue+")";
        else clearInterval(gEvent);
        unBlue+=10;
    }
</script>

Upvotes: 0

Sobin Augustine
Sobin Augustine

Reputation: 3765

with JQuery .hover()

  $("div" ).hover(
  function() {
     $(this).animate({backgroundColor: "#fff"}, 'slow');
  }, function() {
    $(this).animate({backgroundColor:"#000"},'slow');
  });

with JQuery .mouseover()

$("div")
  .mouseover(function() {
    $(this).animate({backgroundColor: "#fff"}, 'slow');
  })
  .mouseout(function() {
    $(this).animate({backgroundColor:"#000"},'slow');
  });

Note you have to use jquery-color (for animating colors). https://github.com/jquery/jquery-color/

Upvotes: 10

Arun P Johny
Arun P Johny

Reputation: 388316

You need to use either jQuery UI libarary or jQuery Colors to enable animation of colors

$('div').hover(function () {
    $(this).stop(true, true).animate({
        backgroundColor: 'black'
    })
}, function () {
     $(this).stop(true, true).animate({
        backgroundColor: 'white'
    })
})

Demo: Fiddle

Upvotes: 2

Related Questions