2009-04-09 176 views
1

我有一个元素可以有任意的背景色(通过CMS设置)。jquery颜色变化

我想突出显示它,方法是在鼠标上方将其亮起并在鼠标上将其变暗。

我尝试使用.css('background-color')来获取和设置该值,但它似乎比我预期的要复杂得多。

什么是非愚蠢的方式来做到这一点?

编辑:只是为了澄清 - 繁琐的位解析和做颜色值算术 - 不应对事件。

编辑:颜色插件给了我一种阅读颜色值的方法,但没有颜色算术和写作支持,我仍然必须做一些驴工作。

最后,我用了一个快速的“淡入淡出”,但需要确认不透明度动画在IE6中正常工作。

回答

3

您是否签出了jQuery Color plugin

我认为颜色操作不存在于核心jQuery代码中,但也许最近的jQuery版本可能已经包含了它。

你需要它让jQuery正确理解颜色操作。

+0

这看起来像一个可以处理HTML颜色的库的好例子。 – cdmckay 2009-04-09 19:24:30

+0

U仍然需要颜色插件1.3.2 – redsquare 2009-04-09 19:38:10

0

使用jQuery hover event

var overColor = "#ddd"; 
var outColor = "#ccc"; 

$('#target').hover(function() 
{ 
    $(this).css("background-color", overColor); 
}, 
function() 
{ 
    $(this).css("background-color", outColor); 
}); 

为了应对越来越现有的颜色,然后改变它,你就必须找到能够理解修改HTML#XXXXXX风格的色彩库。如果有人将背景颜色设置为“红色”这样的名称,您还必须小心。

0

我不知道你所说的“繁琐”的意思,但我只是测试这一点,似乎如果你想在悬停平滑的色彩变化上的最新合作的jQuery

$(document).ready(function() { 
    var originalbc = $("#ThingThatChangesColors").css("background-color"); 
    $("#ThingThatChangesColors").mouseenter(function() { 
     $(this).css("background-color", "#FFF"); 
    }); 
    $("#ThingThatChangesColors").mouseleave(function() { 
     $(this).css("background-color", originalbc); 
    }); 
});