使用jQuery获取单击颜色的hex值
我想知道如何使用jQuery制作颜色选择器,它允许您单击页面上的某个位置并返回您单击的颜色的hex颜色值。
我知道有可能使用javascript或jquery,因为它们不仅有很多颜色选择器插件,而且我有Chrome和具有相同function的扩展程序。
有任何想法吗?
绑定全局click
或mouseup
事件侦听器。 然后,使用canvas
获取像素信息。 可以通过event
对象( event.pageX
, event.pageY
)检索像素位置。
请参阅下面的示例,该示例应在FireFox的未来版本中有效 。 目前,出于安全原因 , 对网页禁用了drawWindow
方法。 不过,它应该可以扩展。 如果您真的感兴趣,请参阅Chrome,Safari和Internet Explorer中类似方法的链接。
var canvas = $("
参考
- canvas示例 – 了解有关
canvas
更多信息 - drawWindow – FireFox方法
- visibleContentAsDataURL – Safari扩展
- chrome.tabs.captureVisibleTab – Chrome扩展程序
- HTA ActiveX控件 – Internet Explorer
通过了解鼠标下像素的颜色,这些插件不起作用; 它们起作用是因为拾取器中的颜色是根据数学公式布局的,并且通过了解公式以及您单击鼠标的位置,插件可以找出那里的颜色。 JavaScript不会为您提供获取页面图像或“光标下的颜色”的任何方法。
我最近有这个问题,默认情况下IE返回hex颜色,而所有好的浏览器返回rgb值,我只是设置条件来处理两个字符串,这将更有效..
但是我认为如果你真的需要它,这个function就可以了
function RGBToHex(rgb) { var char = "0123456789ABCDEF"; return String(char.charAt(Math.floor(rgb / 16))) + String(char.charAt(rgb - (Math.floor(rgb / 16) * 16))); }