您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

分享一个racct hooks 颜色选择器

分享一个racct hooks 颜色选择器

话不多说直接上代码

React Color 官方文档:[http://casesandberg.github.io/react-color/]

// 安装
 npm install react-color 
 //或用yarn安装
 yarn add react-color

// 引入
import { SketchPicker } from 'react-color'
 
  const [displayColor, setDisplayColor] = useState(false)
  const [squareColor, setSquareColor] = useState({ r: '241',g: '112',b: '19', a: '1'})

   const handleClick = () => {
    setDisplayColor(!displayColor)
  };

  const handleClose = () => {
    setDisplayColor(false)
  };

  const handleChange = (color) => {
    setSquareColor( color.rgb )
  };
  
  return (
    <div>
       <div className={ cssModule.swatch } onClick={handleClick}>
          <div className={ cssModule.color } style={{background: `rgba(${ squareColor.r }, ${squareColor.g }, ${ squareColor.b }, ${ squareColor.a })`}}  />
        </div>
        { displayColor ? <div className={ cssModule.popover }>
          <div className={ cssModule.cover } onClick={handleClose}/>
          <SketchPicker color={ squareColor } onChange={ handleChange } />
        </div> : null }
    </div>

// css
.color{
  width: 36px;
  height: 14px;
  border-radius: 2px;
}
.swatch{
  padding: 5px;
  background: #fff;
  border-radius: 1px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.1);
  display: inline-block;
  cursor: pointer;
}
.popover {
  position: absolute;
  z-index: 2;
}
.cover{
  position: fixed;
  top: 0px;
  right: 0px;
  bottom:0px;
  left: 0px;
}

最终效果
在这里插入图片描述


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进