不用框架,复刻一个VS Code的调色板

本文介绍了作者如何使用前端技术(HTML, CSS, JS)和TinyColor库,复刻Visual Studio Code的调色板功能。文章详细讲述了各个部分的实现,包括透明背景、色谱选择、鼠标事件处理以及颜色显示方式切换。虽然存在一些bug,但作为学习过程的记录,仍有一定的参考价值。" 133152474,5814479,CSS实现边框动画效果,"['CSS', '前端', '动画效果', 'HTML', 'CSS样式']
摘要由CSDN通过智能技术生成

我是正在努力学习前端的Mancuoj,欢迎关注互相交流!

前言

那天在codepen看到了别人做的color picker就突发奇想自己复刻一个VS Code的调色板,我也是刚开始学前端嘛,看见啥都想试着写一个。

说干就干,花了几个小时写了一个,bug贼多,就是一个想法,也懒得改了,菜鸡一个,大佬勿喷。

我们先来看看原版长啥样(颜色过多的话gif会失真,大概看看):

2.gif

可以看到上方用来显示颜色和色值,点击可以切换三种色彩显示方式,分别是rgba,hsla和hex8;然后下方左侧一个色谱来选择颜色,右侧两个滑块选择透明度和色相。

右上角的显示原来的颜色和最下方的文字提示这次就先不写了🙈

然后看看我几个小时复刻的结果(在线预览):

112.gif

HTML+CSS

HTML没啥好说的,就div套div

我大概画了一下整体布局:

image-20211025162348883

透明背景

image-20211025163217663

这背景的黑白格子上来就给我整蒙了,还得是万能的搜索啊,最后用线性渐变解决了:

background: linear-gradient(
                45deg, 
                rgba(0, 0, 0, 0.4) 25%, 
                transparent 25%, 
                transparent 75%, 
                rgba(0, 0, 0, 0.4) 75%, 
                rgba(0, 0, 0, 0.4)
                ),
            linear-gradient(
                45deg, 
                rgba(0, 0, 0, 0.4) 25%, 
                transparent 25%, 
                transparent 75%, 
                rgba(0, 0, 0, 0.4) 75%, 
                rgba(0, 0, 0, 0.4)
            );
background-size: 10px 10px;
background-position: 0 0, 5px 5px;

下半部分

透明度和色相选择部分都用线性渐变解决:

// 透明度
background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));

// 色相
background: linear-gradient(to bottom,
    hsl(0, 100%, 50%),
    hsl(60, 100%, 50%),
    hsl(120, 100%, 50%),
    hsl(180, 100%, 50%),
    hsl(240, 100%, 50%),
    hsl(300, 100%, 50%),
    hsl(360, 100%, 50%)
);

滑块左右要各超出去1px:

.slide {
   
    width: 27px;
    height: 5px;
    border: 1px solid #eee;
    position: absolute;
    
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mancuoj

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值