Discuz教程网

html5 学习简单的拾色器

[复制链接]
authicon dly 发表于 2011-1-16 10:58:18 | 显示全部楼层 |阅读模式
下面是源码 需要浏览器支持html5
代码如下:

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <canvas id="colorPicker" onmousemove="showCurrentColor(event)">
  6. </canvas>
  7. <br/>
  8. <div id="textResult">
  9. </div>
  10. <script type="text/javascript">
  11. if(document.createElement("canvas")){
  12. if(document.getElementById("colorPicker").getContext){
  13. var can = document.getElementById("colorPicker");
  14. can.setAttribute("height",300);
  15. var cxt = can.getContext("2d");
  16. var gradient = cxt.createLinearGradient(0.5,0.5,0,150);
  17. gradient.addColorStop(0,\'#00ff00\');
  18. gradient.addColorStop(1,\'#ff0000\');
  19. cxt.fillStyle=gradient;
  20. cxt.fillRect(0,0,60,200);
  21. var ox= can.offsetLeft
  22. var oy = can.offsetTop;
  23. var span = document.createElement("input");
  24. span.setAttribute("id","rgba");
  25. document.getElementById("textResult").appendChild(span);
  26. }
  27. }
  28. function showCurrentColor(e){
  29. var x = e.clientX - 8;
  30. var y = e.clientY - 29;
  31. var w = 10;
  32. if(document.createElement("canvas")){
  33. if(document.getElementById("colorPicker").getContext){
  34. var can = document.getElementById("colorPicker");
  35. var cxt = can.getContext("2d");
  36. var gradient = cxt.createLinearGradient(0.5,0.5,0,150);
  37. var span = document.getElementById("rgba");
  38. var imgDatas = cxt.getImageData(ox,oy,10,200);
  39. var imgData = imgDatas.data;
  40. var g = imgData[4 *(w)*(y)+(x)*4 + 1];
  41. var r = imgData[4 *(w)*(y)+(x)*4];
  42. var b = imgData[4 *(w)*(y)+(x)*4 + 2];
  43. var a = imgData[4 *(w)*(y)+(x)*4 + 3];
  44. span.value="r="+r+" g="+ g+" b="+b +" a="+a;
  45. document.getElementById("textResult").appendChild(span);
  46. }
  47. }
  48. }
  49. </script>
  50. </body>
  51. </html>
复制代码






上一篇:html5时钟实现代码
下一篇:CSS文本属性的使用方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 17:19

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表