canvas教程

使用HTML5技术开发的超酷颜色选择器(2)

字号+ 作者:H5之家 来源:H5之家 2016-01-15 17:25 我要评论( )

canvas id=picker var=5 width=300 height=300/canvas 复制代码 下面我们添加事件:mousemove,click事件。这里使用jQuery来实现选择器的展现和隐藏。 $('.preview').click(function(e) { // preview click $('.col

  • <canvas id="picker" var="5" width="300" height="300"></canvas>

    复制代码


    下面我们添加事件:mousemove,click事件。这里使用jQuery来实现选择器的展现和隐藏。

  • $('.preview').click(function(e) { // preview click     $('.colorpicker').fadeToggle("slow", "linear");     bCanPreview = true; });

    复制代码


    当我们的鼠标移动到选择对象上,我们需要刷新信息,例如,目前颜色

  • $('#picker').mousemove(function(e) { // mouse move handler
  •     if (bCanPreview) {
  •         // get coordinates of current position
  •         var canvasOffset = $(canvas).offset();
  •         var canvasX = Math.floor(e.pageX - canvasOffset.left);
  •         var canvasY = Math.floor(e.pageY - canvasOffset.top);

  •         // get current pixel
  •         var imageData = ctx.getImageData(canvasX, canvasY, 1, 1);
  •         var pixel = imageData.data;

  •         // update preview color
  •         var pixelColor = "rgb("+pixel[0]+", "+pixel[1]+", "+pixel[2]+")";
  •         $('.preview').css('backgroundColor', pixelColor);

  •         // update controls
  •         $('#rVal').val(pixel[0]);
  •         $('#gVal').val(pixel[1]);
  •         $('#bVal').val(pixel[2]);
  •         $('#rgbVal').val(pixel[0]+','+pixel[1]+','+pixel[2]);

  •         var dColor = pixel[2] + 256 * pixel[1] + 65536 * pixel[0];
  •         $('#hexVal').val('#' + ('0000' + dColor.toString(16)).substr(-6));
  •     }
  • });
  • $('#picker').click(function(e) { // click event handler
  •     bCanPreview = !bCanPreview;
  • });

    复制代码


    CSS代码

    不同颜色底板的CSS:

  • /* colorpicker styles */
  • .colorpicker {
  •     background-color: #222222;
  •     border-radius: 5px 5px 5px 5px;
  •     box-shadow: 2px 2px 2px #444444;
  •     color: #FFFFFF;
  •     font-size: 12px;
  •     position: absolute;
  •     width: 460px;
  • }
  • #picker {
  •     cursor: crosshair;
  •     float: left;
  •     margin: 10px;
  •     border: 0;
  • }
  • .controls {
  •     float: right;
  •     margin: 10px;
  • }
  • .controls > div {
  •     border: 1px solid #2F2F2F;
  •     margin-bottom: 5px;
  •     overflow: hidden;
  •     padding: 5px;
  • }
  • .controls label {
  •     float: left;
  • }
  • .controls > div input {
  •     background-color: #121212;
  •     border: 1px solid #2F2F2F;
  •     color: #DDDDDD;
  •     float: right;
  •     font-size: 10px;
  •     height: 14px;
  •     margin-left: 6px;
  •     text-align: center;
  •     text-transform: uppercase;
  •     width: 75px;
  • }
  • .preview {
  •     background: url("../images/select.png") repeat scroll center center transparent;
  •     border-radius: 3px;
  •     box-shadow: 2px 2px 2px #444444;
  •     cursor: pointer;
  •     height: 30px;
  •     width: 30px;
  • }

    复制代码


    演示:

    下载: demo.zip (174.79 KB, 下载次数: 505)

    2012-10-29 09:38 上传

    点击文件名下载附件






    译文:

    原文:



     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • html5canvas核心技术图形、动画与游戏开发源码

      html5canvas核心技术图形、动画与游戏开发源码

      2017-05-02 17:42

    • 打印html5中Canvas的方法

      打印html5中Canvas的方法

      2017-05-01 15:03

    • HTML样式CSS

      HTML样式CSS

      2017-05-01 10:03

    • HTML5+Canvas调用手机拍照功能实现图片上传(下)

      HTML5+Canvas调用手机拍照功能实现图片上传(下)

      2017-04-30 17:00

    网友点评