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