首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

运用HTML5技术开发的超酷颜色选择器

2012-11-03 
使用HTML5技术开发的超酷颜色选择器日期:2012-10-23来源:GBin1.com在线演示 本地下载 可能大家见过很多使

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

日期:2012-10-23  来源:GBin1.com

运用HTML5技术开发的超酷颜色选择器

在线演示 本地下载

可能大家见过很多使用jquery/js开发的颜色选择器,今天这里我们将使用HTML5技术来自己实现一个更棒的颜色选择器。希望大家喜欢!

HTML代码
<!-- preview element --><div class="preview"></div><!-- colorpicker element --><div class="colorpicker" style="display:none">    <canvas id="picker" var="1" width="300" height="300"></canvas>    <div class="controls">        <div><label>R</label> <input type="text" id="rVal" /></div>        <div><label>G</label> <input type="text" id="gVal" /></div>        <div><label>B</label> <input type="text" id="bVal" /></div>        <div><label>RGB</label> <input type="text" id="rgbVal" /></div>        <div><label>HEX</label> <input type="text" id="hexVal" /></div>    </div></div>

代码很简单,包含了2个部分,一个点击元素,一个用来展示颜色选择器的元素。

Javascript代码
$(function(){    var bCanPreview = true; // can preview    // create canvas and context objects    var canvas = document.getElementById('picker');    var ctx = canvas.getContext('2d');    // drawing active image    var image = new Image();    image.onload = function () {        ctx.drawImage(image, 0, 0, image.width, image.height); // draw the image on the canvas    }    // select desired colorwheel    var imagesrc="images/colorwheel1.png";    switch ($(canvas).attr('var')) {        case '2':            imagesrc="images/colorwheel2.png";            break;        case '3':            imagesrc="images/colorwheel3.png";            break;        case '4':            imagesrc="images/colorwheel4.png";            break;        case '5':            imagesrc="images/colorwheel5.png";            break;    }    image.src = imageSrc;    $('#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;    });    $('.preview').click(function(e) { // preview click        $('.colorpicker').fadeToggle("slow", "linear");        bCanPreview = true;    });});

大家可以看到,这是一个非常短的js代码,用来创建新的画布和对象,然后我们画出一个圆形的颜色板。你可以选择不同颜色底板。 这里使用一个参数来设定不同的选择。如下:

<canvas id="picker" var="1" width="300" height="300"></canvas>
<canvas id="picker" var="2" width="300" height="300"></canvas>
<canvas id="picker" var="3" width="300" height="300"></canvas>
<canvas id="picker" var="4" width="300" height="300"></canvas> 

来源:使用HTML5技术开发的超酷颜色选择器


热点排行