基于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