[[html]]
<style>
@import url(http://d3g0gp89917ko0.cloudfront.net/v--edac79f846ba/common--theme/base/css/style.css);
@import url(http://d3g0gp89917ko0.cloudfront.net/v--edac79f846ba/common--theme/shiny/css/style.css);
@import url(http://scp-jp.wdfiles.com/local--theme/scp-sigma-9-off-canvas/style.css);
#redG{
background: linear-gradient(90deg, rgba(0, 0, 0, 1), rgba(255, 0, 0, 1));
background-size: cover;
position:relative;
height:20px;
}
#greenG{
background: linear-gradient(90deg, rgba(0, 0, 0, 1), rgba(0, 255, 0, 1));
background-size: cover;
position:relative;
height:20px;
}
#blueG{
background: linear-gradient(90deg, rgba(0, 0, 0, 1), rgba(0, 0, 255, 1));
background-size: cover;
position:relative;
height:20px;
}
#colorValueDisplay{
padding:5px;
}
#colorControlBar{
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
#colorValueDisplay input{
letter-spacing:0.2em;
cursor:text;
}
#ColorEditorParent{
width:70%;
border:outset #BBB 2px;
background-color:#CCC;
margin:auto;
box-shadow: 5px 5px 2px 2px rgba(0,0,0,0.6);
}
</style>
<div id="ColorEditorParent">
<div style="background-color:#00F;color:#FFF;font-size:120%;text-align:center;">
カラーエディター
</div>
<div style="padding:10px;">
<div style="float:left;width:45%;height:250px;text-align:center;font-weight:bold;">
カラーサンプル
<div id="colorSample" style="border:inset #EEE 2px;height:200px;background-color:#FFF;">
</div>
</div>
<div style="float:left;width:48%" id="colorValueDisplay">
<div id="colorControlBar">
<div style="height:20px;" id="redG">
<div id="redBar" style="width:4%;height:20px;position:absolute;top:0px;left:98%;background-color:#EEE;border:solid #AAA 1px;cursor:pointer;"></div>
</div>
<table>
<tr><td valign="middle" style="width:2em;">赤:</td><td id="redValue" valign="middle" style="width:4em;" align="right">255</td></tr></table>
<br />
<div style="height:20px;" id="greenG">
<div id="greenBar" style="width:4%;height:20px;position:absolute;top:0px;left:98%;background-color:#EEE;border:solid #AAA 1px;cursor:pointer;"></div>
</div>
<table><tr><td valign="middle" style="width:2em;">緑:</td><td id="greenValue" valign="middle" style="width:4em;" align="right">255</td></tr></table>
<br />
<div style="height:20px;" id="blueG">
<div id="blueBar" style="width:4%;height:20px;position:absolute;top:0px;left:98%;background-color:#EEE;border:solid #AAA 1px;cursor:pointer;"></div>
</div>
<table><tr><td valign="middle" style="width:2em;">青:</td><td id="blueValue" valign="middle" style="width:4em;" align="right">255</td></tr></table>
</div>
値:<input id="colorNumber" size="8" maxlength="7" value="#ffffff" readonly></input>
</div>
<div style="clear:both;"></div>
</div>
</div>
<div style="height:20px;width:100%;">
</div>
<script type="text/javascript">
var editor;
var display;
var setting;
var setStart = {
red:false,
green:false,
blue:false
}
var colorValueList = {
red:255,
green:255,
blue:255
}
var isMouseDown = false;
document.addEventListener( 'DOMContentLoaded',function(event){
editor = document.getElementById("colorEditor");
display = document.getElementById("colorSample");
setting = document.getElementById("colorNumber");
var rgbName = ["red","green","blue"];
var check = isUseSmartPhone();
if(check){
isMouseDown = true;
}else{
if(document.addEventListener){
document.addEventListener("mouseup",function(){isMouseDown = false;});
}else if(document.attachEvent){
document.attachEvent("onmouseup",function(){isMouseDown = false;});
}
document.getElementById("ColorEditorParent").setAttribute("onmouseout",'changeMode(false)');
document.getElementById("colorControlBar").setAttribute("onmouseout",'(function(event){event.stopPropagation()})(event)');
document.getElementById("colorControlBar").setAttribute("onmousedown",'(function(event){event.preventDefault()})(event)');
}
var target;
for(var i = 0;i < rgbName.length;i++){
target = document.getElementById(rgbName[i] + "G");
if(check){
switch(i){
case 0:
target.addEventListener("touchmove",function(event)
{setColorForSmartPhone("red",event)},false);
target.addEventListener("touchstart",function(event){setColorForSmartPhone("red",event)},false);
break;
case 1:
target.addEventListener("touchmove",function(event)
{setColorForSmartPhone("green",event)},false);
target.addEventListener("touchstart",function(event){setColorForSmartPhone("geen",event)},false);
break;
case 2:
target.addEventListener("touchmove",function(event)
{setColorForSmartPhone("blue",event)},false);
target.addEventListener("touchstart",function(event){setColorForSmartPhone("blue",event)},false);
break;
}
}else{
target.setAttribute("onmousemove",'setColor("' + rgbName[i]+ '",event);');
target.setAttribute("onmousedown",'(function(event){changeMode(true);setColor("' + rgbName[i]+ '",event);})(event)');
}
}
function isUseSmartPhone(){
return (((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0));
}
});
function changeMode(bool){
isMouseDown = bool;
}
function setColorForSmartPhone(color,event){
event.preventDefault();
var touch = event.touches[0].pageX;
applicateColor(color,touch);
}
function setColor(color,event){
event.preventDefault();
if(!isMouseDown)return false;
var mouseX = event.pageX;
applicateColor(color,mouseX);
}
function applicateColor(color,xPos){
var target = document.getElementById(color + "G");
var elmW = target.clientWidth;
var mouseX = xPos -target.getBoundingClientRect().left;
var percent = Math.floor((mouseX / elmW) *100);
if(percent > 100)percent = 100;
if(percent < 0)percent = 0;
document.getElementById(color+"Bar").style.left = (percent-2) + "%";
colorValueList[color] = Math.floor(255*(percent/100));
document.getElementById(color+"Value").innerHTML = colorValueList[color];
oldColorEdit();
}
function oldColorEdit(elm){
var color = "#";
color += createTwoDigit(colorValueList.red);
color += createTwoDigit(colorValueList.green);
color += createTwoDigit(colorValueList.blue);
display.style.backgroundColor = color;
setting.value = color;
function createTwoDigit(colorNum){
var text = colorNum.toString(16);
if(text.length < 2)text = "0" + text;
return text;
}
}
</script>
[[/html]]
コメント投稿フォームへ
批評コメントTopへ