jQuery动画backgroundColor

我正在尝试在鼠标悬停时使用jQuery来动画backgroundColor的变化。

我检查了一些示例,似乎正确了,它可以与其他属性(例如fontSize)一起使用,但可以使用backgroundColor和“ Invalid

Property” js错误。我正在使用的元素是一个div。

$(".usercontent").mouseover(function() {

$(this).animate({ backgroundColor: "olive" }, "slow");

});

有任何想法吗?

回答:

颜色插件仅比UI库便宜4kb。当然,您将要使用一个不错的插件版本,而不要使用一些过时的旧东西,这些旧东西不能处理Safari并在转换太快时崩溃。由于未提供压缩版本,因此您可能需要测试各种压缩机并制作自己的最小版本。在这种情况下,YUI仅需2317字节即可获得最佳压缩,并且压缩非常小

这是:

(function (d) {

d.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (f, e) {

d.fx.step[e] = function (g) {

if (!g.colorInit) {

g.start = c(g.elem, e);

g.end = b(g.end);

g.colorInit = true

}

g.elem.style[e] = "rgb(" + [Math.max(Math.min(parseInt((g.pos * (g.end[0] - g.start[0])) + g.start[0]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[1] - g.start[1])) + g.start[1]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[2] - g.start[2])) + g.start[2]), 255), 0)].join(",") + ")"

}

});

function b(f) {

var e;

if (f && f.constructor == Array && f.length == 3) {

return f

}

if (e = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)) {

return [parseInt(e[1]), parseInt(e[2]), parseInt(e[3])]

}

if (e = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)) {

return [parseFloat(e[1]) * 2.55, parseFloat(e[2]) * 2.55, parseFloat(e[3]) * 2.55]

}

if (e = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)) {

return [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)]

}

if (e = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)) {

return [parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16)]

}

if (e = /rgba\(0, 0, 0, 0\)/.exec(f)) {

return a.transparent

}

return a[d.trim(f).toLowerCase()]

}

function c(g, e) {

var f;

do {

f = d.css(g, e);

if (f != "" && f != "transparent" || d.nodeName(g, "body")) {

break

}

e = "backgroundColor"

} while (g = g.parentNode);

return b(f)

}

var a = {

aqua: [0, 255, 255],

azure: [240, 255, 255],

beige: [245, 245, 220],

black: [0, 0, 0],

blue: [0, 0, 255],

brown: [165, 42, 42],

cyan: [0, 255, 255],

darkblue: [0, 0, 139],

darkcyan: [0, 139, 139],

darkgrey: [169, 169, 169],

darkgreen: [0, 100, 0],

darkkhaki: [189, 183, 107],

darkmagenta: [139, 0, 139],

darkolivegreen: [85, 107, 47],

darkorange: [255, 140, 0],

darkorchid: [153, 50, 204],

darkred: [139, 0, 0],

darksalmon: [233, 150, 122],

darkviolet: [148, 0, 211],

fuchsia: [255, 0, 255],

gold: [255, 215, 0],

green: [0, 128, 0],

indigo: [75, 0, 130],

khaki: [240, 230, 140],

lightblue: [173, 216, 230],

lightcyan: [224, 255, 255],

lightgreen: [144, 238, 144],

lightgrey: [211, 211, 211],

lightpink: [255, 182, 193],

lightyellow: [255, 255, 224],

lime: [0, 255, 0],

magenta: [255, 0, 255],

maroon: [128, 0, 0],

navy: [0, 0, 128],

olive: [128, 128, 0],

orange: [255, 165, 0],

pink: [255, 192, 203],

purple: [128, 0, 128],

violet: [128, 0, 128],

red: [255, 0, 0],

silver: [192, 192, 192],

white: [255, 255, 255],

yellow: [255, 255, 0],

transparent: [255, 255, 255]

}

})(jQuery);

以上是 jQuery动画backgroundColor 的全部内容, 来源链接: utcz.com/qa/422725.html

回到顶部