js+css实现4阶三维魔方取色器代码

代码语言:html

所属分类:其他

代码描述:js+css实现4阶三维魔方取色器代码,旋转魔方,点击魔方的色块就能选择颜色值。

代码标签: js css 4阶 三维 魔方 取色器 代码

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

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">

 
 
<style>
a
{ color: inherit; }
body
{
 
--check: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="1.5" stroke="%23fff" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 12l5 5l10 -10"/></svg>');
 
background-color: var(--bg, #B71C1C);
 
color: color-contrast(var(--bg, #B71C1C) vs black, white);
 
font-family: ui-sans-serif, system-ui, sans-serif;
 
margin: 0;
 
height: 100dvh;
 
perspective: 40em;
 
text-align: center;
 
transition: background-color .33s ease-in-out;
}
code
{ font-size: 1.25em; }
fieldset
{
 
--i: 0;
 
--j: 1;
 
border: 0;
 
display: grid;
 
gap: 2px;
 
grid-template-columns: repeat(4, 1fr);
 
padding: 1px;
 
position: absolute;
 
transform: rotate3d(var(--i), var(--j), 0, var(--a)) translateZ(2em);
 
backface-visibility: hidden;
 
background: #FFF;
 
height: 4em;
 
margin: -2em;
 
width: 4em;
}
fieldset:nth-child(n + 5) {
 
--i: 1;
 
--j: 0;
}
fieldset:nth-child(1) {
 
--a: 0deg;
 
--ga: 352deg;
 
--h: 0deg;
}
fieldset:nth-child(2) {
 
--a: 90deg;
 
--ga: 12deg;
 
--h: 60deg;
}
fieldset:nth-child(3) {
 
--a: 180deg;
 
--ga: 48deg;
 
--h: 120deg;
}
fieldset:nth-child(4) {
 
--a: 270deg;
 
--ga: 192deg;
 
--h: 180deg;
}
fieldset:nth-child(5) {
 
--a: 90deg;
 
--ga: 317deg;
 
--h: 240deg;
}
fieldset:nth-child(6) {
 
--a: -90deg;
 
--ga: 128deg;
 
--h: 300deg;
}
form
{
 
font-size: 12vmin;
 
left: 50%;
 
position: absolute;
 
top: 50%;
 
transform-style: preserve-3d;
 
transform: rotate3d(var(--i, -7), var(--j, 8), 0, var(--a, 47deg)) var(--p,  );
}
input
{
 
all: unset;
 
background-color: var(--bg);
 
display: block;
 
position: relative;
}
input:checked::after {
 
background-color: color-contrast(var(--bg, #B71C1C) vs black, white);
 
content: '';
 
display: block;
 
inset: 0;
 
mask: var(--check) no-repeat 50% 50%;
 
position: absolute;
 
-webkit-mask: var(--check) no-repeat 50% 50%;
}
label
{ display: contents; }
p
, small {

 
display: block;
 
position: fixed;
 
}
p
{
 
margin: 0;
 
top: 1ch;
 
left: 1ch;
 
white-space: nowrap;
}
small
{
 
bottom: 1ch;
 
right: 1ch;
}
</style>

 
 
</head>

<body >
 
<p><strong>Selected color:</strong> <code>rgb(183, 28, 28)</code></p>
<form>
 
<fieldset>
   
<label><input type="radio" name="color" style="--bg: #B71C1C" checked /></label>
   
<label><input type="radio" name="color" style="--bg: #C62828" /></label>
   
<label><input type="radio" name="color" style="--bg: #D32F2F" /></label>
   
<label><input type="radio" name="color" style="--bg: #E53935" /></label>
   
<label><input type="radio" name="color" style="--bg: #F44336" /></label>
   
<label><input type="radio" name="color" style="--bg: #EF5350" /></label>
   
<label><input type="radio" name="color" style="--bg: #E57373" /></label>
   
<label><input type="radio" name="color" style="--bg: #EF9A9A" /></label>
   
<label><input type="radio" name="color" style="--bg: #880E4F" /></label>
   
<label><input type="radio" name="color" style="--bg: #AD1457" /></label>
   
<label><input type="radio" name="color" style="--bg: #C2185B" /></label>
   
<label><input type="radio" name="color" style="--bg: #D81B60" /></label>
   
<label><input type="radio" name="color" style="--bg: #E91E63" /></label>
   
<label><input type="radio" name="color" style="--bg: #EC407A" /></label>
   
<label><input type="radio" name="color" style="--bg: #F06292" /></label>
   
<label><input type="radio" name="color" style="--bg: #F48FB1" /></label>
 
</fieldset>
 
<fieldset>
   
<label><input type="radio" name="color" style="--bg: #4A148C" /></label>
   
<label><input type="radio" name="color" style="--bg: #6A1B9A" /></label>
   
<label><input type="radio" name="color" style="--bg: #7B1FA2" /></label>
   
<label><input type="radio" name="color" style="--bg: #8E24AA" /></label>
   
<label><input type="radio" name="color" style="--bg: #9C27B0" /></label>
   
<label><input type="radio" name="color" style="--bg: #AB47BC" /></label>
   
<label><input type="radio" name="color" style="--bg: #BA68C8&quo.........完整代码请登录后点击上方下载按钮下载查看

网友评论0