jQuery有没办法取到页面上某一像素点的颜色值?
1
coolzjy 2015-07-01 10:43:36 +08:00 1
DOM 里面没这种 api
jQuery 也没办法 |
2
leojoy710 2015-07-01 10:48:04 +08:00
dom先转成canvas
然后就能获取颜色了 不过可能dom->canvas这一步会有位置的差异 |
3
Navee 2015-07-01 11:06:19 +08:00
没有
|
4
zythum 2015-07-01 11:29:34 +08:00
理论上可以可以。但是比较繁琐。并且逻辑分支非常复杂,还有很多不确定因素。不建议这样搞。你可以换个思路试试。
|
5
bertonzh 2015-07-01 11:37:59 +08:00
不可行。
单单获取图片像素点这一条,在跨域问题面前就会被毙掉。 |
6
learnshare 2015-07-01 11:41:22 +08:00
|
7
ghbjy1128 2015-07-01 11:52:37 +08:00
|
8
otakustay 2015-07-01 11:52:44 +08:00
特定情况下理论上可以+1,比如整个页面没有跨域资源的话,可以canvas画出来再取点
还请把提这种蛋疼需求的PM砍了 |
9
jugelizi 2015-07-01 11:55:57 +08:00
显然这个问题就有bug 弹出层背景色怎么算
|
10
guesskiss 2015-07-01 12:29:06 +08:00 via Android
js截屏,再解析该图片像素点
|
11
crs0910 2015-07-01 13:32:30 +08:00
http://getcolor.coding.io/
canvas搞的 |
12
crs0910 2015-07-01 13:35:32 +08:00
就是2楼的方法,先算鼠标点的哪个元素,然后算鼠标在元素里面的位置,然后把元素转 canvas ,最后取出 canvas 里面刚刚算的那个坐标的颜色。
|
13
crs0910 2015-07-01 13:45:07 +08:00
跨域解决看看引入的那个 html2canvas.js 的文档,有解决方法。
|
16
justahappy 2015-07-01 14:08:11 +08:00
@zythum 理论上可以可以。但是比较繁琐。并且逻辑分支非常复杂,还有很多不确定因素。不建议这样搞。你可以换个思路试试。 多完美的万能回复,假装自己很懂的样子。。。。。。
|
17
crs0910 2015-07-01 14:26:20 +08:00
@justahappy 有可能是你自己看不懂而已。朱一可能是说获取元素 style 里面有可能涉及到颜色变化的属性值这个思路,因为题主说的是 jquery ,一般思路就是获取元素然后检查 background-color 之类属性,但是这个思路太复杂了,朱一才那么说。
这是我的理解。不喜勿喷。 |
18
zythum 2015-07-01 15:20:38 +08:00
@crs0910
@justahappy 确实是这样子的。 逻辑大概是找到那个位置有哪些dom叠着。然后通过这个dom的style分析位置是content还是border还是其他什么部分。把透明的滤掉。然后取颜色分析结构是个样式定义的颜色还是backgroundImage或者就是一个image。如果是样式颜色好办,如果图片那么分析图片的设置。把图片下载下来。找到那个点的位置。canvas api有这个。这个操作和用html2canvas是一样的。但是这个操作很难把所有的逻辑都包括进去。特别是一些css3属性什么transform变形什么的。html2canvas一样也是会有问题的。 不确定因素就是如果这个位置不是一个常规dom就不行了。比如embed,object. 中间嵌入flash什么的比如那是个video标签在播放内容什么的。 不知道题主的运用场景时什么。如果可以的话试试用firefox插件开发。firefox插件貌似有domToCanvas的api,具体是哪个忘了。但是朱一记得有。 |
19
bertonzh 2015-07-01 16:52:29 +08:00
|