基于tinycolor开发的颜色选择器插件

代码语言:html

所属分类:选择器

代码描述:基于tinycolor开发的颜色选择器插件,通过编写jquery插件的方式,加了一些css样式,实现了颜色选择器效果

代码标签: 颜色 选择器 插件

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>BFW NEW PAGE</title>
    <script id="bfwone" data="dep=jquery.17&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
    <script type="text/javascript">
        bready(function() {
            use(["tinycolor.min"], function() {
               
                    $(".colorpicker").minimalColorpicker({
                        color: "#4513e9", onUpdateColor: function(b, a) {
                            console.log(a)}})}); 
                            jQuery.fn.minimalColorpicker = function(b) {
                    var a = {
                        color: "#000000"
                    }; var c = $.extend({}, a, b); return this.each(function() {
                            var k = $(this); var g = $("<div />").addClass("hue"); var h = $("<div />").addClass("drag"); var d = $("<div />").addClass("field"); var f = $("<div />").addClass("fieldOverlay"); var e = $("<div />").addClass("drag"); var i = $("<input />").val("#ffffff"); var j = $("<ul />"); j.append($("<li />").html("<strong>255</strong>R")); j.append($("<li />").html("<strong>255</strong>G")); j.append($("<li />").html("<strong>255</strong>B")); if (tinycolor(c.color).isValid()) {
                                k.color = tinycolor(c.color).toHsl()}if (tinycolor(k.data("color")).isValid()) {
                                k.color = tinycolor(k.data("color")).toHsl()}g.append(h); k.append(g); f.append(e); d.append(f); k.append(d); k.append(i); k.append(j); k.hue = g.get(0); k.hue.drag = h.get(0); k.fieldBase = d.get(0); k.field = f.get(0); k.field.drag = e.get(0); k.updateHue = function(l) {
                                k.setHue(l.offsetY/g.outerHeight()*360); if (k.hue.onmousemove === null) {
                                    k.hue.onmousemove = function(m) {
                                        if (m.target === k.hue) {
                                            k.setHue(m.offsetY/g.outerHeight()*360); m.stopPropagation()}}}k.clearMousemove("hue")}; k.updateColor = function(l) {
                                k.setColorPos(l.offsetX, l.offsetY); if (k.field.onmousemove === null) {
                                    k.field.onmousemove = function(m) {
                                        if (m.target === k.field) {
                                            k.setColorPos(m.offsetX, m.offsetY); m.stopPropagation()}}}k.clearMousemove("field")}; k.setColorPos = function(l, m) {
                                k.field.drag.style.setProperty("--x", l); k.field.drag.style.setProperty("--y", m); k.color = tinycolor({
                                    h: k.color.h, s: ((l/(d.outerWidth()-1))*100), v: ((1-m/(d.outerHeight()-1))*100)}).toHsl(); k.setColor()}; k.setHue = function(l) {
                                k.color.h = l; k.setColor()}; k.setColor = function(m) {
                                var l = tinycolor(k.color); chsv = l.toHsv(); l = l.toHslString(); k.field.drag.style.setProperty("--x", Math.round((chsv.s)*(d.outerWidth()-1))+"px"); k.field.drag.style.setProperty("--y", Math.round((1-chsv.v)*(d.outerHeight()))+"px"); k.hue.drag.style.setProperty("--y", k.color.h/360*g.outerHeight()+"px"); k.fieldBase.style.setProperty("--backgroundHue", k.color.h); if (b.onUpdateColor !== undefined) {
                                    b.onUpdateColor(m, {
                                        hex: tinycolor(k.color).toHex(), rgb: tinycolor(k.color).toRgb(), rgbString: tinycolor(k.color).........完整代码请登录后点击上方下载按钮下载查看

网友评论0