提到这个问题: -
JavaScript -Change CSS color for 5 seconds
答案的工作演示: -
http://jsfiddle.net/maniator/dG2ks/
我需要知道如何为它添加一个缓和效果,这样慢慢缓慢的颜色可以100%不透明,同样可以100%透明。
答案 0 :(得分:1)
function makeRGBStr(obj) {
if (obj.a == null) return "rgb(" + obj.r + "," + obj.g + "," + obj.b + ")";
else return "rgba(" + obj.r + "," + obj.g + "," + obj.b + "," + obj.a + ")";
}
window["highlight"] = function(obj, color) {
var highlightColor = color || {
"r": 255,
"g": 0,
"b": 0
};
var orig = obj.style.backgroundColor;
var curAlpha = 1;
obj.style.backgroundColor = makeRGBStr(highlightColor);
setTimeout(function() {
curAlpha -= 0.1;
var newColor = highlightColor;
newColor.a = curAlpha;
obj.style.backgroundColor = makeRGBStr(newColor);
if (curAlpha <= 0) {
obj.style.backgroundColor = orig;
}
else {
setTimeout(arguments.callee, 100);
}
});
}
jsFiddle:http://jsfiddle.net/dG2ks/32/
如果存在特定的$ _GET变量,请突出显示: 代码:http://jsfiddle.net/dG2ks/36/,请参阅操作:http://jsfiddle.net/dG2ks/36/show/?someVar=there
突出显示表格单元格:http://jsfiddle.net/dG2ks/38/
答案 1 :(得分:0)
你可以添加jquery库,结合jquery ui - 如果你还没有使用它 - 并使用switchClass方法。
此处的所有信息:http://jqueryui.com/demos/switchClass/
只需要5行就可以完成你想做的事情:
将jquery en jquery ui放在页面的head部分(2行代码)。 这些是远程托管文件,您可以按原样复制/粘贴代码。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>
然后,在正文的末尾,放置一个包含以下三行代码的脚本:
$(".yourbutton".click(function() {
switchClass('.currentclass','.redclass',500)
// transition from .currentclass to .redclass in 500 milliseconds
});