使用jquery在div上缓慢改变颜色动画效果

时间:2013-06-15 09:56:12

标签: javascript jquery html css

如何让鼠标框在鼠标悬停时慢慢改变颜色。

js code

$('#link').animate({ backgroundColor: "#f6f6f6" }, 'slow', function(){
 $('#link').animate({ backgroundColor: "#f6f6f6" }, 'slow');
 })

css代码

#link
{
width:500px;
height:52px;
border:dashed #666 2px;
margin-top:293px;
}

html代码

<div id="link"></div>

3 个答案:

答案 0 :(得分:4)

使用CSS animation

DEMO

<强> CSS

#link
{
    width:500px;
    height:52px;
    border:dashed #666 2px;
    margin-top:293px;
}

#link:hover {
        animation: color 1s ease-in-out 0 1 normal both;
}

@keyframes color {
    0% { background: white; }
    100% { background: #F6F6F6; }
}

使用CSS transition

DEMO

<强> CSS

#link
{
    background: transparent;
    width:500px;
    height:52px;
    border:dashed #666 2px;
    margin-top:293px;
    transition: background .5s ease-in-out;
}
#link:hover {
    background: red;
}

答案 1 :(得分:0)

你去吧。您可以使用jquery mouseovermouseleave事件

$("#link").on("mouseover",function(){
   $(this).animate({backgroundColor:"red"},'slow');
}).on("mouseleave",function(){
   $(this).animate({backgroundColor:"white"},'slow');
});

您还需要JQuery UI library来完成这项工作。animate是JQuery UI库的一部分。

以下是Jfiddle

答案 2 :(得分:-1)

你可以使用像这样的javascript函数

  var div = document.getElementById( 'div_id' );
  div.onmouseover = function() {
    this.style.backgroundColor = 'green';
    var h2s = this.getElementsByTagName( 'h2' );
    h2s[0].style.backgroundColor = 'blue';
  };
  div.onmouseout = function() {
    this.style.backgroundColor = 'transparent';
    var h2s = this.getElementsByTagName( 'h2' );
    h2s[0].style.backgroundColor = 'transparent';
  };