我想在悬停时使某些文字的背景颜色淡入/淡出。由于文本位于图像的顶部,我希望背景颜色从透明度淡入然后再变为透明。
这是我到目前为止所做的:
$('#nav li.menu').hover(
function () {
$(this).animate({backgroundColor: "#FFEF00"},300);
},
function () {
$("li.menu").animate({backgroundColor: "Transparent"},300);
}
);
但是,当我运行此代码时,动画会在开始制作动画之前将背景颜色变为白色。有谁知道我怎么解决这个问题?
谢谢, MJ
答案 0 :(得分:0)
所有动画属性都应设置为单个数值,大多数非数字属性无法使用基本jQuery功能进行动画处理(例如,宽度,高度或左边可以设置动画但背景颜色不能,除非使用jQuery.Color()插件)。除非另有说明,否则属性值被视为多个像素。可以在适用的情况下指定单位em和%。
了解更多信息,请查看
http://api.jquery.com/animate/
http://desizntech.info/2009/06/playing-with-jquery-color-plugin-and-color-animation/
答案 1 :(得分:0)
“透明”本身并不意味着什么。颜色由红色,绿色,蓝色和alpha定义。由于页面的默认背景颜色是白色,因此“透明”实际上被翻译为“带有alpha 0的白色”。
尝试使用rgba()
表示法强制使用特定的“透明”颜色。
$("li.menu").animate({backgroundColor:"rgba(0xff,0xef,0,0)"});
答案 2 :(得分:0)
然后,在你的css中创建另一个类或id,并使用jquery来改变悬停时的类/ id。 (.getElement
命令,如果你需要知道)