Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取CSS背景图像的像素颜色_Javascript_Css_Colors_Background_Onmouseover - Fatal编程技术网

Javascript 获取CSS背景图像的像素颜色

Javascript 获取CSS背景图像的像素颜色,javascript,css,colors,background,onmouseover,Javascript,Css,Colors,Background,Onmouseover,我需要获得鼠标指针当前悬停的任何像素的颜色。 我为canvas元素找到了几种解决方案,但对于CSS中为元素定义的背景图像,没有一种解决方案 我如何才能做到这一点?结合和的答案,我能够模拟您正在寻找的: 这还包括对CSS的更改:结合来自和的答案,我能够模拟您正在寻找的内容: 这还包括对CSS的更改:您尝试了什么?有任何JS代码或示例无法正常工作吗?可能的重复要获取背景图像的CSS值,请尝试以下操作:注意,IES的旧版本存在浏览器兼容性问题。您尝试了什么?有任何JS代码或示例无法正常工作吗?可能的重

我需要获得鼠标指针当前悬停的任何像素的颜色。 我为canvas元素找到了几种解决方案,但对于CSS中为元素定义的背景图像,没有一种解决方案


我如何才能做到这一点?

结合和的答案,我能够模拟您正在寻找的:


这还包括对CSS的更改:

结合来自和的答案,我能够模拟您正在寻找的内容:


这还包括对CSS的更改:

您尝试了什么?有任何JS代码或示例无法正常工作吗?可能的重复要获取背景图像的CSS值,请尝试以下操作:注意,IES的旧版本存在浏览器兼容性问题。您尝试了什么?有任何JS代码或示例无法正常工作吗?可能的重复要获取背景图像的CSS值,请尝试以下操作:注意,与旧版本的IET存在浏览器兼容性问题。这很好!我使用这些图像作为背景图像,因为将不同的图像缩放到预览div的大小(固定大小)具有优势。当图像缩放时,您的方法不再正常工作。我试图将计算样式移动到鼠标移动功能中,但我运气不好。。你对我的方向有什么提示吗?@user2556555我做了一次编辑,解释了一些缩放。你可以试一试,这个对我不管用。鼠标上只显示颜色0,0,0everywhere@ashleedawg有趣。我已经5年没看这篇文章了。控制台中有大量错误。。有关尝试加载丢失的资源的内容。当我有时间排除故障时,我会尽量记得回到这里来。这太棒了!我使用这些图像作为背景图像,因为将不同的图像缩放到预览div的大小(固定大小)具有优势。当图像缩放时,您的方法不再正常工作。我试图将计算样式移动到鼠标移动功能中,但我运气不好。。你对我的方向有什么提示吗?@user2556555我做了一次编辑,解释了一些缩放。你可以试一试,这个对我不管用。鼠标上只显示颜色0,0,0everywhere@ashleedawg有趣。我已经5年没看这篇文章了。控制台中有大量错误。。有关尝试加载丢失的资源的内容。当我有时间解决问题时,我会尽量记得回到这里来。
<html>
<head>
    <style type="text/css">
        #test {
            background-image: url('http://jsfiddle.net/img/logo.png');
            background-color: blue;
            background-repeat: no-repeat;
            height: 30px;
            width: 100%;
        }

        #hidden {
            display: none;
        }
    </style>
    <script type="text/javascript">
        var div = document.getElementById("test");
        var style = window.getComputedStyle(div);

        div.onmousemove = function(e) {
            var path = style.getPropertyValue('background-image');
            path = path.substring(4, path.length-1);

            var img = document.getElementById("i1");
            img.src = path;

            var canvas = document.getElementById("c1");
            canvas.width = img.width;
            canvas.height = img.height;
            canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);

            var pixelData = canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data;

            var values = document.getElementById("values");
            values.innerHTML = 'R: ' + pixelData[0] + '<br>G: ' + pixelData[1] + '<br>B: ' + pixelData[2] + '<br>A: ' + pixelData[3];
        };
    </script>
</head>
<body>
    <div id="test"></div>
    <div id="hidden">
        <img id="i1" src="" />
        <canvas id="c1"></canvas>
    </div>
    <div id="values"></div>
</body>
</html>
var h = parseInt(style.getPropertyValue("width")), 
    w = parseInt(style.getPropertyValue("height"));

var img = document.getElementById("i1");
img.src = path;

var canvas = document.getElementById("c1");
canvas.width = h;
canvas.height = w;
canvas.getContext('2d').drawImage(img, 0, 0, w, h);