js实现在线图片亮度色度对比度饱和度可视化增减调节生成css代码
代码语言:html
所属分类:布局界面
代码描述:js实现在线图片亮度色度对比度饱和度可视化增减调节生成css代码,鼠标附上去后显示调节操作区域,点击可增减响应的值。
代码标签: js 在线 图片 亮度 色度 对比度 饱和度 可视化 增减 调节 生成 css 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
*,::before,::after{
margin: 0;
padding: 0;
box-sizing: border-box;
}
button{
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: transparent;
border: none;
cursor: pointer;
outline: none;
padding: 0;
margin: 0;
font-family: inherit;
font-size: inherit;
color: inherit;
text-decoration: none;
text-transform: none;
line-height: normal;
overflow: visible;
}
:root{
--center-size: 290px;
--center-text: -125px;
--center-text-offset: 130px;
--center-img-size: 220px;
--border-clr: white;
}
body{
background-color: var(--border-clr);
min-height: 100svh;
font-family: system-ui;
}
.popart{
--gap: 10px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
height: 100svh;
gap: var(--gap);
}
.popart .img {
width: 100%;
height: 100%;
overflow: hidden;
background-color: var(--border-clr);
}
.popart img{
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
transition: opacity 300ms ease-in-out;
}
/* center image - this gets all the filters */
.popart .img:nth-of-type(1) {
position: absolute;
inset: 0;
margin: auto;
width: var(--center-img-size);
height: var(--center-img-size);
z-index: 999;
border: var(--gap) solid var(--border-clr);
border-radius: 50%;
filter:
saturate(var(--saturate))
brightness(var(--brightness))
hue-rotate(var(--hue-rotate))
contrast(var(--contrast));
}
.popart .img:nth-of-type(2) {
filter: saturate(var(--saturate));
}
.popart .img:nth-of-type(3) {
filter: brightness(var(--brightness));
}
.popart .img:nth-of-type(4) {
filter: hue-rotate(var(--hue-rotate));
}
.popart .img:nth-of-type(5) {
filter: contrast(var(--contrast));
}
.options {
--_btn-deg-clr: #8cc9c6;
--_btn-bg: #FFF;
position: absolute;
z-index: 100;
inset: 0;
margin: auto;
display: grid;
text-transform: uppercase;
place-items: center;
cursor: pointer;
transition: scale 500ms ease-in-out;
scale: 0;
}
body:hover .options{
scale: 1;
}
.options .btn-data button{
border-radius: 50%;
width: 1rem;
height: 1rem;
padding: .75rem;
display: grid;
place-content: center;
z-index: 300;
transition: 300ms ease-in-out;
rotate: -90deg;
}
[data-direction="plus"]{
translate: -5px; /* hack to fix plus button position - I need to do this propertly */
}
.options .btn-data:hover button{
background: #777;
color: white
}
.options .btn-data button:hover {
background: black;
color: white
}
.options span {
translate: var(--center-text) 0;
transform-origin: var(--center-text-offset);
position: relative;
}
.options > * {
grid-area: 1/1;
}
.options .btn-data {
display: grid;
place-items: center;
background-color: var(--_btn-bg);
z-index: 200;
width: var(--center-size);
height: var(--center-size);
border-radius: 50%;
transition: 300ms ease-in-out;
opacity: .8;
scale: 100%;
-webkit-clip-path: polygon(0 0, 42% 0, 50% 50%, 0 42%);
clip-path: polygon(0 0, 42% 0, 50% 50%, 0 42%);
isolation: isolate;
rotate: var(--_btn-rotate);
}
.options .btn-data::after{
content: '';
position: absolute;
inset: 0;
background: conic-gradient(from var(--deg) at 50% 50%, trans.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0