原生js实现一个自定义色块的取色器颜色选择器效果代码

代码语言:html

所属分类:选择器

代码描述:原生js实现一个自定义色块的取色器颜色选择器效果代码

代码标签: js 颜色 选择器

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <style>

        .color-picker-container {
      display: inline-block;
      background: #5d5f60 none repeat scroll 0% 0%;
      border-radius: 4px;
      border: 2px solid #f8fafb;
    }
    .color-picker-container .picker-container .canvas-container {
      margin: 20px;
      position: relative;
      float: left;
      width: 200px;
      display: inline-block;
      background: #5D5F60;
    }
    .color-picker-container .picker-container .canvas-container.active {
      display: block;
    }
    .color-picker-container .picker-container .canvas-container canvas {
      cursor: crosshair;
      border-radius: 50%;
      box-shadow: 0 0 0 4px #E8E8E8;
      background: #E6D3D3;
    }
    .color-picker-container .picker-container .canvas-container .pointer {
      width: 15px;
      height: 15px;
      border: 2px solid #fff;
      border-radius: 50%;
      position: absolute;
      pointer-events: none;
      background: rgba(0, 0, 0, 0.1);
    }
    .color-picker-container .picker-container .canvas-container input {
      margin-top: 10px;
      width: 100%;
      height: 30px;
      text-align: center;
      background: #353738;
      border: 0;
      color: #fff;
    }
    .color-picker-container .picker-container .slider-container {
      width: 15px;
      float: right;
      position: relative;
      margin: 15px;
    }
    .color-picker-container .picker-container .slider-container .slider {
      width: 15px;
      height: 249px;
      background: #000;
    }
    .color-picker-container .picker-container .slider-container .pointer {
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 5px 0 5px 10px;
      border-color: transparent transparent transparent #007bff;
      position: absolute;
      left: -8px;
    }
    .color-picker-container .palletes-container {
      float: right;
      width: 275px;
    }
    .color-picker-container .palletes-container .palette {
      width: 35px;
      height: 35px;
      float: right;
      border-radius: 4px;
      margin: 5px;
      box-shadow: inset 0px 2px 1px rgba(0, 0, 0, 0.28);
      cursor: pointer;
    }
    .color-picker-container .palletes-container .palette.active {
      box-shadow: 0 0 0 3px #3F3F40;
    }
    .color-picker-container .palletes-container .palette.add {
      border: 2px dashed #bababa;
      box-shadow: inherit;
      position: relative;
    }
    .color-picker-container .palletes-container .palette.add:after {
      content: '+';
      font-size: 24px;
      color: #bababa;
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      text-align: center;
      line-height: 30px;
    }
    </style>
</head>

<body>
    <div id="picker"></div>

    <script>
        var ColorPicker;
    
     (function() {
    
       function insertBefore(element, before) {
         parent = before.parentNode;
         parent.insertBefore(element, before);
       }
    
       function extend(defaults, options) {
         var extended = {};
         var prop;
         for (prop in defaults) {
           if (Object.prototype.hasOwnProperty.call(defaults, prop)) {
             extended[prop] = defaults[prop];
           }
         }
         for (prop in options) {
           if (Object.prototype.hasOwnProperty.call(options, prop)) {
             extended[prop] = options[prop];
           }
         }
         return extended;
       };
    
       function hasClass(element, classname) {
         var className = " " + classname + " ";
         if ((" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(" " + classname + " ") > -1) {
           return true;
         }
         return false;
       }
    
       function removeClass(node, className) {
         node.className = node.className.replace(
           new RegExp('(^|\\s+)' + className + '(\\s+|$)', 'g'),
           '$1'
         ).replace(/ +(?= )/g, '').trim();
       }
    
       function addClass(element, className) {
         if (!hasClass(element, className)) {
           element.className += ' ' + className;
           element.className = element.className.replace(/ +(?= )/g, '').trim()
         }
       }
    
       ColorPicker = function(element, options) {
    
         this.options = extend({
           color: '#e7e7e7',
           palettes: ['#646fff', '#fffa1d', '#ffa21f', '#ff391d'],
           onUpdate: function() {}
         }, options);
    
         this.options.palettes.unshift(this.options.color);
    
         this.hex = this.options.color;
         this.rgb = this.HEXtoRGB(this.hex);
         this.hsv = this.RGBtoHSV(this.rgb[0], this.rgb[1], this.rgb[2]);
         this.dom = {};
         this.dom.container = document.createElement('div');
         this.dom.container.className = 'color-picker-container';
    
         element.appendChild(this.dom.container);
    
         this.initPicker();
    
         this.initPalettes();
       }
    
       ColorPicker.prototype.initPicker = function() {
    
         this.dom.picker = {};
         this.dom.picker.container = document.createElement('div');
         this.dom.picker.container.className = 'picker-container';
    
         this.dom.container.appendChild(this.dom.picker.container);
    
         this.dom.picker.canvas = {};
    
         this.dom.picker.canvas.container = document.createElement('div');
         this.dom.picker.canvas.container.className = 'canvas-container';
         this.dom.picker.container.appendChild(this.dom.picker.canvas.container);
    
         this.dom.picker.canvas.canvas = document.createElement('canvas');
         this.dom.picker.canvas.canvas.className = 'canvas';
    
         this.dom.picker.canvas.pointer = document.createElement('div');
         this.dom.picker.canvas.pointer.className = 'pointer';
    
         var ctx = this.dom.picker.canvas.canvas.getContext('2d'),
           image = new Image,
           $this = this,
           dragging = false;
    
         this.dom.picker.canvas.canvas.setAttribute('width', 200);
         this.dom.picker.canvas.canvas.setAttribute('height', 200);
         this.dom.picker.canvas.container.appendChild(this.dom.picker.canvas.canvas);
         this.dom.picker.canvas.container.appendChild(this.dom.picker.canvas.pointer);
    
         // image.src = 'images/wheel copy.png';
         image.src = 'data:image/png;base64,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.........完整代码请登录后点击上方下载按钮下载查看

网友评论0