Tạo bảng chọn màu (Color Picker ) với jQuery

Danh mục: Html & Javascript
 

Color Picker là một trong những chức năng thường xuất hiện trong các text editor mà chúng ta dùng để soạn thảo bài viết. Hôm nay, mình sẽ chia sẻ cho các bạn cách tạo chức năng này với vài đoạn script jQuery và các bạn có thể nâng cao để mà sử dụng cho trang web hay blog của các bạn.

Color Picker, jQuery, jQuery tips, tao bang chon mau, code css

HTML

Các bạn copy đoạn html bên dưới để làm khung chuẩn cho bảng chọn màu.

<div class="color-wrapper">

    <p>Choose color (#hex)</p>

    <input type="text" name="custom_color" placeholder="#ffffff" id="pickcolor" class="call-picker">

    <div class="color-holder call-picker"></div>

    <div class="color-picker" id="color-picker" style="display:none" ></div>

</div>

CSS

Kế tiếp các bạn định dạng bảng màu với đoạn css sau :

.color-wrapper{

    position:relative;

    width:250px;

    margin:20px auto;

}



.color-wrapper p{ margin-bottom:5px; }



input.call-picker{

    border:1px solid #aaa;

    color:#666;

    text-transform:uppercase;

    float:left;

    outline:none;

    padding:10px;

    width:85px;

}



.color-picker{

    width:130px;

    background:#f3f3f3;

    height:81px;

    padding:5px;

    border:5px solid #fff;

    box-shadow:0px 0px 3px 1px #ddd;

    position:absolute;

    top:61px;

    left:2px;

}



.color-holder{

    background:#fff;

    cursor:pointer;

    border:1px solid #aaa;

    width:40px;

    height:36px;

    float:left;

    margin-left:5px;

}



.color-picker .color-item{

    cursor:pointer;

    width:10px;

    height:10px;

    list-style-type:none;

    float:left;

    margin:2px;

    border:1px solid #ddd;

}



.color-picker .color-item:hover{

    border:1px solid #666;

    opacity:0.8;

    -moz-opacity:0.8;

    filter:alpha(opacity=8);

}

jQuery

Và đây chính là trái tim của bài viết, các bạn sử dụng đoạn script sau để ứng dụng hoàn tất.

var colorList = ['000000', '993300', '333300', '003300', '003366', '000066', '333399', '333333',

'660000', 'FF6633', '666633', '336633', '336666', '0066FF', '666699', '666666', 'CC3333', 'FF9933', '99CC33', '669966', '66CCCC', '3366FF', '663366', '999999', 'CC66FF', 'FFCC33', 'FFFF66', '99FF66', '99CCCC', '66CCFF', '993366', 'CCCCCC', 'FF99CC', 'FFCC99', 'FFFF99', 'CCffCC', 'CCFFff', '99CCFF', 'CC99FF', 'FFFFFF'];

    var picker = $('#color-picker');



    for(var i=0; i< colorList.length; i++)

    {

        picker.append('<li class="color-item" data-hex="'+

        '#' + colorList[i] + '" style="background-color:' +

        '#' + colorList[i] + ';"></li>');

    }

    // khi click vao bang mau, no se tu mat

    $('body').click(function(){

        picker.fadeOut();

    });



    // click de xuat hien bang mau

    $('.call-picker').click(function(event){

        event.stopPropagation();

        picker.fadeIn();

        picker.children('li').hover(function(){

            var codeHex = $(this).data('hex');

            $('.color-holder').css('background-color',codeHex);

            $('#pickcolor').val(codeHex);

        });

    });

Đoạn code trên sử dụng thuật toán rất đơn giản trong việc chọn màu, mình hy vọng là qua bài viết này, các bạn có thể học thêm được nhiều kinh nghiệm trong việc sử dụng jQuery để tạo những hiệu ứng của riêng mình.

 



BÀI VIẾT KHÁC
CODE GỢI Ý CHO BẠN
BÌNH LUẬN

BẢN QUYỀN ®
Mọi chia sẻ nội dung thuộc tác quyền của MANGUON.COM phải ghi rõ "Nguồn MANGUON.COM"