色带(8种颜色)选择器

8颜色色带选择器,效果如下图 

 


export let colorRampList = [
  {
    id: 'colorRamp-1',
    colorRamp: ['#00939C', '#65B3BA', '#A2D4D7', '#C1E6C6', '#F5B097', '#E17449', '#C22E00', '#8B0000']
  },
  {
    id: 'colorRamp-2',
    colorRamp: ['#FFFACD', '#EAD98A', '#CABB43', '#99A70A', '#5F9304', '#408812', '#086D25', '#0A4F27']
  },
  {
    id: 'colorRamp-3',
    colorRamp: ['#8B4513', '#B35806', '#F1A340', '#FEE0B6', '#C1E6C6', '#FCD583', '#998EC3', '#542788']
  },
  {
    id: 'colorRamp-4',
    colorRamp: ['#8C510A', '#D8B365', '#C1E6C6', '#E7D4E8', '#C1E6C6', '#5AB4AC', '#01665E', '#2F4F4F']
  },
  {
    id: 'colorRamp-5',
    colorRamp: ['#762A83', '#AF8DC3', '#E7D4E8', '#C1E6C6', '#C1E6C6', '#00FA9A', '#7FBF7B', '#1B7837']
  },
  {
    id: 'colorRamp-6',
    colorRamp: ['#FFF0F5', '#ffc6c4', '#f4a3a8', '#e38191', '#cc607d', '#ad466c', '#8b3058', '#672044']
  },
  {
    id: 'colorRamp-7',
    colorRamp: ['#00985C', '#72BA76', '#C1DA97', '#FFFCC2', '#FCC478', '#F9833D', '#EF231A', '#B22222']
  },
  {
    id: 'colorRamp-8',
    colorRamp: ['#e4f1e1', '#b4d9cc', '#89c0b6', '#63a6a0', '#448c8a', '#287274', '#0d585f', '#074050']
  },
  {
    id: 'colorRamp-9',
    colorRamp: ['#F0FFF0', '#d3f2a3', '#97e196', '#6cc08b', '#4c9b82', '#217a79', '#105965', '#074050']
  },
  {
    id: 'colorRamp-10',
    colorRamp: ['#b0f2bc', '#89e8ac', '#67dba5', '#4cc8a3', '#38b2a3', '#2c98a0', '#257d98', '#105965']
  }
]

export let colorRampArr = [
  {
    id: 'colorRamp_1',
    colorRamp: ['#58181C', '#A61D24', '#E84749', '#F89F9A']
  },
  {
    id: 'colorRamp_2',
    colorRamp: ['#306317', '#6F9412', '#8FD460', '#D5F2BB']
  },
  {
    id: 'colorRamp_3',
    colorRamp: ['#0F8282', '#33BCB7', '#84E2D8', '#B2F1E8']
  },
  {
    id: 'colorRamp_4',
    colorRamp: ['#112A45', '#177DDC', '#65B7F3', '#B7E3FA']
  }
]
import React, { createRef } from "react";

class ColorRamp extends React.Component {
    constructor(props) {
        super(props)
        this.colorRef = createRef();
    }

    componentDidMount() {
        this.drawColorRamp()
    }

    // 绘制色带条
    drawColorRamp = () => {
        let c = this.colorRef.current
        let ctx = c.getContext('2d')
        let width = this.props.width / this.props.colorRamp.length
        let height = this.props.height || 0
        this.props.colorRamp.map((item, index) => {
            ctx.fillStyle = item;
            ctx.fillRect(10 + width * index, 6 - height/2, width, 12 + height*1.5);
        })
    }

    render() {
        return (
            <canvas ref={this.colorRef} height={21} style={{width:'98%', marginTop:'4px', marginBottom:'2px'}}></canvas>
        )
    }
}

export default ColorRamp

使用时import入父组件即可使用,

import ColorRamp from "./ColorRamp";
import { colorRampList } from './ColorRampList'

render(){
    return(
        ......
        colorRampList.map((item, index) => {
            return (
                <Option value={index}>
                    <ColorRamp key={index} colorRamp={item.colorRamp} width={280} />
                </Option>
            )
        })
      }
)
}
{
                                    

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值