我想将“exampleDiv”的背景颜色从最初的白色更改为当我调用下面的代码时立即更改为黄色,然后再淡化回原来的白色背景。
$("#exampleDiv").animate({ backgroundColor: "yellow" }, "fast");
然而,此代码无法正常工作。
我只链接了JQuery核心和JQuery UI到我的网页。
为什么上面的代码不能正常工作?
我想将“exampleDiv”的背景颜色从最初的白色更改为当我调用下面的代码时立即更改为黄色,然后再淡化回原来的白色背景。
$("#exampleDiv").animate({ backgroundColor: "yellow" }, "fast");
然而,此代码无法正常工作。
我只链接了JQuery核心和JQuery UI到我的网页。
为什么上面的代码不能正常工作?
我在使用animate
时经常效果不尽如人意,但发现使用它内置的回调函数再结合jQuery的css
在大多数情况下都能够运作良好。
请尝试这个函数:
$(document).ready(function () {
$.fn.animateHighlight = function (highlightColor, duration) {
var highlightBg = highlightColor || "#FFFF9C";
var animateMs = duration || "fast"; // edit is here
var originalBg = this.css("background-color");
if (!originalBg || originalBg == highlightBg)
originalBg = "#FFFFFF"; // default to white
jQuery(this)
.css("backgroundColor", highlightBg)
.animate({ backgroundColor: originalBg }, animateMs, null, function () {
jQuery(this).css("backgroundColor", originalBg);
});
};
});
然后这样调用:
$('#exampleDiv').animateHighlight();
在IE9,FF4和Chrome中进行测试,使用jQuery 1.5(不需要UI插件)。我也没有使用jQuery颜色插件-您只需要在需要使用命名颜色(例如'yellow'
而不是'#FFFF9C'
)时才需要该插件。
我曾经也遇到过同样的问题,当我包含了正确的js文件时,一切都能够正常工作。
<script src="/Scripts/jquery-1.9.1.js"></script>
<script src="/Scripts/jquery-ui-1.8.20.js"></script>
<script src="/Scripts/jquery.color-2.1.2.js"></script>
jQuery.fn.flash = function (color, duration) {
var current = this.css('backgroundColor');
this.animate({ backgroundColor: 'rgb(' + color + ')' }, duration / 2)
.animate({ backgroundColor: current }, duration / 2);
}
上述代码允许我执行以下操作:
$('#someId').flash('255,148,148', 1100);
这段代码将使您的元素闪烁成红色,然后恢复到原来的颜色。
以下是一些示例代码。 http://jsbin.com/iqasaz/2
$("exampleDiv").effect("highlight", {}, 5000);
您有一些选项,比如更改高亮颜色。
我遇到了相同的问题,最终发现页面上调用了多个jquery js文件。
虽然这对于任何其他方法以及使用其他CSS属性(如左侧)尝试使用animate时都可以正常工作,但是对于animate方法中的背景颜色属性不起作用。
因此,我删除了额外调用jquery的js文件,并且它对我完全有效。
对我来说,使用 effects.core.js
没有问题。不过,我不记得那是否真正必需了。我认为它只支持十六进制的值。以下是一个样例悬停代码,当你悬停时会使物品淡出。希望这对你有用:
jQuery.fn.fadeOnHover = function(fadeColor)
{
this.each(function()
{
jQuery(this).data("OrigBg",jQuery(this).css("background-color"));
jQuery(this).hover(
function()
{
//Fade to the new color
jQuery(this).stop().animate({backgroundColor:fadeColor}, 1000)
},
function()
{
//Fade back to original color
original = jQuery(this).data("OrigBg");
jQuery(this).stop().animate({backgroundColor:original},1000)
}
);
});
}
$(".nav a").fadeOnHover("#FFFF00");
我刚刚添加了这个片段到jquery脚本下面,它立即开始工作:
<script src="https://cdn.jsdelivr.net/jquery.color-animation/1/mainfile"></script>
$(el).animate()
,但不太确定为什么它停止工作了。将这个作为 src 添加进去就像魔法一样起作用了! - Malmadork