I need to create a colour picker for a site which wouldn't be a problem, but I want to essentially have a slider that picks colours from this range:
How would I go about this?
これに似たものが想像できます。それはおそらくいくつかの(多くの)微調整を使用する可能性がありますが、それがその要点です:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#color_picker {
background: #e8f230; /* Old browsers */
background: -moz-linear-gradient(left, hsla(63,88%,57%,1) 0%, hsla(0,0%,0%,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,hsla(63,88%,57%,1)), color-stop(100%,hsla(0,0%,0%,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, hsla(63,88%,57%,1) 0%,hsla(0,0%,0%,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, hsla(63,88%,57%,1) 0%,hsla(0,0%,0%,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, hsla(63,88%,57%,1) 0%,hsla(0,0%,0%,1) 100%); /* IE10+ */
background: linear-gradient(to right, hsla(63,88%,57%,1) 0%,hsla(0,0%,0%,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e8f230', endColorstr='#000000',GradientType=1 ); /* IE6-9 */
height: 30px;
}
</style>
</head>
<body>
<div id="color_picker"></div>
<div id="target">Test</div>
<script>
var picker = color_picker;
var result = target;
picker.onclick = function(e) {
console.log(e);
result.style.backgroundColor = "hsl(63, 88%, " + (50 - ((e.offsetX/picker.clientWidth) * 50)) + "%)";
}
</script>
</body>
</html>
ストレートHTMLが必要な場合は、MAP
タグを使用し、HTML-GETを使用して関連する値を渡すことができます...それ以外の場合は、JavaScriptを少し使用しますか?
実際に既存のコードを探しましたか?
ここに何かがあります:http ://www.w3schools.com/tags/ref_colorpicker.asp
コメントから:
w3schoolsは間違った誤解を招くサイトです。あらゆる種類の言語の参照として使用しないでください。PHPの場合はPHPマニュアルがあり、JavaScriptの場合はMozilla Developer Network(またはMDN)があります。w3schoolsを使用してはならない理由をさらに理解するには、w3fools.comを参照してください。
けっこうだ。それは単なる例でした。stackoverflowの[AskQuestion]ボタンを押すよりも、Googleでソースコードを見つける方が速いです。別のものがあります:直接リンクされたLGPLソースコードを持つhttp://jscolor.com/ 。目的に合わせて変更します。