+
95
-

回答

chrome95版本以后新增EyeDropper api支持通过js来获取电脑屏幕任意位置的颜色值了,示例代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
    <title>BFW NEW PAGE</title>
    <style>
        .preview {
            height: 30px;
            border-radius: 15px;
            width: 30px;
            display: block;
            float: left;
          
        }
    </style>
</head>

<body>

    <div class="output">

        <span class="preview"></span>
        <input type="text" class="color">
        <button class="getColor">点击取色</button>
    </div>

    <script>
  
        
        if (!window.EyeDropper) {
          window.pre.innerHTML = "需要Chrome 95以上才支持屏幕取色";
        }
        
        const getColor = async e => {
          const eyeDropper = new EyeDropper();
          try {
            const { sRGBHex } = await eyeDropper.open();
            document.querySelector('.preview').
            style.background = sRGBHex;
        
            document.querySelector('.color').value = sRGBHex;
          } catch (e) {
            document.querySelector('.color').value = '出错了';
          }
        };
        
        // Click binding
        document.querySelector(".getColor").
        addEventListener("click", getColor);
    </script>




</body>

</html>

网友回复

我知道答案,我要回答