JavaScript选色器应用实例

795 阅读3分钟

JavaScript Color Picker

JavaScript取色器简介

JavaScript取色器是一个允许用户从取色器容器中挑选颜色的控件。选色器还允许用户调整不透明度和色调以获得所需的颜色。此外,它还支持调色板的定制,并支持整合到表单的内联模式。你们都见过很多种类的拾色器,它可以用任何编程语言编程,也可以是任何直接的插件。一般来说,这些取色器是用来提取所需的颜色来装饰应用程序或基于需求的。

语法

为拾色器创建一个新的实例。

var samplePicker =  new jscolor(<targetElement>, <options>);

这里的参数是节点选择器,它将在鼠标点击时显示一个颜色选择器。

<options>: An object with optional hashmap with configurations and values in format, {<option>: <value>,….}

对于JavaScript颜色选择器,我们有一个通用的JavaScript代码,可以在 "jscolor.com "下载。

jscolor.js

这个jscolor.js文件将包含各种类型的颜色选择器的编程逻辑。

JavaScript颜色选择器的例子

下面提到了不同的例子。

例子#1

代码

<script src="./jscolor.js"></script>
<h1>Different Color Pcikers</h1>
<h3>
Color:
<input data-jscolor="{position:'right'}" value="28F1C9">
</h3>
<h3>
Button type Large dark picker:
<button data-jscolor="{preset:'large dark', value:'rgba(48,85,255,0.8)'}"></button>
</h3>
<h3>
Small RGBA picker:
<input data-jscolor="{width:120}" value="rgba(144,34,82,1)">
</h3>

输出

Javascript Color Picker output 1

通过颜色,我们默认指定了一个特定的颜色;点击后,显示颜色选择器。

Javascript Color Picker output 2

Javascript Color Picker output 3

输入型深色背景的颜色选择器

Javascript Color Picker output 4

颜色选择器的小视图。

例子#2

代码

<script src="jscolor.js"></script>
<p>
Small dark preset color picker:
<input value="FFA000" data-jscolor="{preset:'small dark', position:'right'}">
</p>
<p>
Large preset color picker:
<input value="rgba(255,255,0,0.5)" data-jscolor="{preset:'large', position:'right'}">
</p>
<p>
Custom theme:
<input value="rgba(255,255,0,2.5)" data-jscolor="{
position: 'right', width: 120, height: 120,
padding: 10, sliderSize: 25, borderRadius: 5,
borderWidth: 1, controlBorderWidth: 1, pointerBorderWidth: 2,
borderColor: '#256', controlBorderColor: '#CCC', backgroundColor: '#334'
}">
</p>
<p>
Input with large preview color picker:
<input value="rgba(255,110,0,0.5)" data-jscolor="{previewSize:50}">
</p>
<p>
Button with large preview color picker:
<button data-jscolor="{value:'rgba(255,160,120,0.5)', previewSize:20}"></button>
</p>

输出

Javascript Color Picker output 5

只有字母的小预设,大预设为RGBA变体。首先,自定义主题设置了位置、宽度、高度、padding、背景色和边框宽度。接下来是输入大预设的颜色选择器,有previewSize,另外有Button预览。

例子#3

代码

<script src="jscolor.js"></script>
<h3>Redirect value of color picker</h3>
<p>
<button data-jscolor="{valueElement:'#value1', alphaElement:'#alpha1'}">
Pick color here
</button>
Value: <input id="value1" value="ABC222">
Alpha: <input id="alpha1" value="0.8">
<p>
<h3>Redirect value and preview of color picker</h3>
<p>
<button data-jscolor="{valueElement:'#value2', alphaElement:'#alpha2', previewElement:'#pr2'}">
Pick color here
</button>
Value: <input id="value2" value="BB2447">
Alpha: <input id="alpha2" value="0.9">
Preview: <span id="pr2" style="display:inline-block; width:100px;">&nbsp;</span>
<p>

输出

Javascript Color Picker output 6

让我们试着改变这里的颜色。

Javascript Color Picker output 7

例子 #4

代码

<script src="jscolor.js"></script>
<h2>Positioning of color picker</h2>
<p>
Color Picker on right:
<input data-jscolor="{position:'right'}">
</p>
<p style="margin-top:200px">
Color Picker on Top
<input data-jscolor="{position:'top'}">
</p>
<p style="margin-bottom:200px">
Color Picker on Bottom
<input data-jscolor="{position:'bottom'}">
</p>

输出

output 8

output 9

选色器在右边的定位

output 10

选色器在顶部的位置

output 11

选色器在底部的位置

例子#5

代码

<script src="jscolor.js"></script>
<button onclick="addPickers(100)">Add 100 color pickers</button>
<p id="container"></p>
<script>
function addPickers(count) {
for(var i = 0; i < count; i++) {
var inputColor = document.createElement('INPUT')
var opts = {backgroundColor:'#666'}
var picker = new JSColor(inputColor, opts)
picker.fromHSVA((360/count) * i, 100, 100)
document.getElementById('container').appendChild(inputColor)
}
}
</script>

输出

output 12

点击后,100种颜色被添加到控制台。

output 13

例子 #6

代码

<script src="jscolor.js"></script>
<script>
function generatePicker() {
document.getElementById('output').innerHTML += '<input data-jscolor="">'
jscolor.install()
}
</script>
<button onclick="generatePicker()">Click to generate Color Picker</button>
<p id="output"></p>

输出

output 14

点击后,生成一个颜色选择器

output 15

例子 #7

代码

<script src="jscolor.js"></script>
<p>HSV(Hue Saturation Value) mode: <input data-jscolor="{mode:'HSV', position:'top'}"></p>
<p>HVS mode: <input data-jscolor="{mode:'HVS', position:'bottom'}"></p>


输出

output 16

output 17

例子 #8

代码

<script src="jscolor.js"></script>
Color picker with a <b>Close</b> button:
<input value="fb3333" data-jscolor="{closeButton:true, closeText:'Close Picker!',
backgroundColor:'#555', buttonColor:'#AAA'}">

输出

output 19

output 20

点击关闭选取器,颜色选取器将被关闭。

例子 #9

代码

<script src="jscolor.js"></script>
<p>
Color Preview changes on selecting:
<input data-jscolor="{value:'rgba(222,160,232,1)', previewElement:'#preview1'}">
</p>
<em id="preview1" style="display:inline-block; padding:1em;">COLOR</em>
<p>
Color picker using onInput event handler:
<input data-jscolor="{value:'rgba(242,90,233,0.9)'}", onInput="update(this.jscolor)">
</p>
<em id="preview2" style="display:inline-block; padding:1em;">background</em>
<em id="preview3" style="display:inline-block; padding:1em;">background color</em>
<script>
function update(colorpicker) {
document.getElementById('preview2').style.background = colorpicker.toBackground()
document.getElementById('preview3').style.backgroundColor = colorpicker.toRGBAString()
}
jscolor.trigger('input');
</script>

输出

output 21

选择颜色后显示颜色预览。

带有事件处理程序的颜色选择器将显示背景颜色和不透明度

以上所有的例子我们都是通过编程来完成的,也有一些库用于这些拾色器:

  • 扁平取色器
  • Bootstrap拾色器
  • React Color
  • Vue Swatches
  • Flexi Color Picker
  • HuuBee
  • 颜料Joe
  • 谱系,等等

结语

至此,我们结束了对 "JavaScript选色器 "这一主题的讨论。我们已经看到了什么是JavaScript选色器以及它的语法。我们还看到了许多例子,这些例子会让你很容易理解。jscolor.js是所有例子中的通用脚本。

所以一定要理解jscolor.js文件,这样任何要做的改变都会很容易理解。我们也看到了一些可以直接安装的颜色采集器库。另外,我们还有一些浏览器或脚本应用程序的扩展,可以帮助我们在一行中添加颜色采集器。JavaScript取色器还支持许多内置的主题,如bootstrap、material。内置主题可以通过覆盖SASS变量和使用任何Theme Studio应用程序来定制或创建新的主题。