当前位置: 首页 > 面试题库 >

jQuery动画backgroundColor

淳于健
2023-03-14
问题内容

我正在尝试在鼠标悬停时使用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 stop() 方法,实例jQuery stop() 方法用于在动画或效果完成前对它们进行停止。 停止滑动 时间是宝贵的,因此,我们为您提供快捷易懂的学习内容。 在这里,您可以通过一种易懂的便利的模式获得您需要的任何知识。 实例 jQuery stop() 滑动 演示 jQuery stop() 方法。 jQuery stop() 动画(带参数) 演示 jQuery stop() 方法 jQuery stop() 方法 j

  • 问题内容: 我正在使用jQuery和jQuery-ui,并希望为各种对象设置各种属性的动画。 为了在此说明问题,我将其简化为一个div,当用户将鼠标悬停在其上时,该分区从蓝色变为红色。 使用时我可以得到想要的行为,但是这样做时,我要设置动画的样式必须在动画代码中,因此与样式表是分开的。(请参见 示例1 ) 一种替代方法是使用,但是我无法重新创建可以得到的确切行为。(请参见 示例2 ) 例子1 让我

  • 本文最初发表于[博客园](),并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 前言 jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。 显示动画 方式一: $("div").show(); 解释:无参数,表示让指定的元素直接显示出来。其实这个方法的底层就是通过displa

  • 问题内容: 我只需要使用jQuery动画,请不要提及过渡。 这是我的代码库 如您所见,安装组件时,我可以添加一个很棒的动画,但是不能像代码中提到的那样用动画来卸载该组件。 任何想法如何仅使用jQuery来做到这一点?和Reactjs组件生命周期? 问题答案: 这是我通过过于简单的演示来解决此问题的尝试。 jsFiddle 。 JavaScript: 正如你已经想通了,这是不是很难任何动画子组件 中

  • 本文向大家介绍jQuery之动画效果大全,包括了jQuery之动画效果大全的使用技巧和注意事项,需要的朋友参考一下 下面介绍了几种动画效果的方法,具体如下: 1、show()显示效果 语法:show(speed,callback)  Number/String,Function speend为动画执行时间,单位为毫秒。也可以为slow","normal","fast" callback可选,为当动

  • 本文向大家介绍jquery animate动画持续运动的实例,包括了jquery animate动画持续运动的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 如上,想要实现左右持续运动,则把该动画封装为一个函数,再反复调用就好。 以上这篇jquery animate动画持续运动的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。