Advertisement
avr39-ripe

colorPicker_bad.js

Apr 28th, 2020
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*function wheelR(event)
  2. {
  3.     event.preventDefault();
  4.     colorR += event.deltaY * -0.1;
  5.     colorR = Math.min(Math.max(0, colorR),255);
  6.     rgbContainer.style.backgroundColor = `rgb(${colorR},${colorG},${colorB})`;
  7.     console.log(`rgb(${colorR},${colorG},${colorB})`);
  8. };
  9. function wheelG(event)
  10. {
  11.     event.preventDefault();
  12.     colorG += event.deltaY * -0.1;
  13.     colorG = Math.min(Math.max(0, colorG),255);
  14.     rgbContainer.style.backgroundColor = `rgb(${colorR},${colorG},${colorB})`;
  15.     console.log(`rgb(${colorR},${colorG},${colorB})`);
  16. };
  17.  
  18. function wheelB(event)
  19. {
  20.     event.preventDefault();
  21.     colorB += event.deltaY * -0.1;
  22.     colorB = Math.min(Math.max(0, colorB),255);
  23.     rgbContainer.style.backgroundColor = `rgb(${colorR},${colorG},${colorB})`;
  24.     console.log(`rgb(${colorR},${colorG},${colorB})`);
  25. };*/
  26.  
  27. //red.addEventListener('wheel', wheelR);
  28. //green.addEventListener('wheel', wheelG);
  29. //blue.addEventListener('wheel', wheelB);
  30.  
  31. /*
  32. let colorR = 0;
  33. let colorG = 0;
  34. let colorB = 0;
  35.  
  36. function wheel(event)
  37. {
  38.     event.preventDefault();
  39.     let targetId = event.target.id;
  40.     console.log(targetId);
  41.  
  42.     if (targetId === 'red')
  43.     {
  44.         colorR += event.deltaY * -0.1;
  45.         colorR = Math.min(Math.max(0, colorR),255);
  46.     }
  47.     if (targetId === 'green')
  48.     {
  49.         colorG += event.deltaY * -0.1;
  50.         colorG = Math.min(Math.max(0, colorG),255);
  51.     }
  52.     if (targetId === 'blue')
  53.     {
  54.         colorB += event.deltaY * -0.1;
  55.         colorB = Math.min(Math.max(0, colorB),255);
  56.     }
  57.     rgbContainer.style.backgroundColor = `rgb(${colorR},${colorG},${colorB})`;
  58.     console.log(`rgb(${colorR},${colorG},${colorB})`);
  59. };
  60.  
  61. rgbContainer.addEventListener('wheel', wheel);
  62. */
  63.  
  64. class ColorPicker
  65. {
  66.     constructor()
  67.     {
  68.         this._red = 0;
  69.         this._green = 0;
  70.         this._blue = 0;
  71.         this._active = 'none';
  72.     }
  73.  
  74.     static colorElements = ['red','green','blue'];
  75.     static inElements = ['inRed','inGreen','inBlue'];
  76.  
  77.     get red() {return this._red;};
  78.     get green() {return this._green;};
  79.     get blue() {return this._blue;};
  80.     get active() {return this._active;};
  81.  
  82.     set red(val) { this._red = Math.min(Math.max(0, val),255); this._updateColor() };
  83.     set green(val) { this._green = Math.min(Math.max(0, val),255); this._updateColor() };
  84.     set blue(val) { this._blue = Math.min(Math.max(0, val),255); this._updateColor() };
  85.     set active(val) { this._active = val; this._setActive(this._active); };
  86.  
  87.     _cycleActive(dir=1)
  88.     {
  89.         if (this.active='none') { this.active = 'red'; };
  90.         let activeId = ColorPicker.colorElements.indexOf(this.active);
  91.         console.log(this.active, activeId);
  92.         activeId += dir;
  93.         console.log(activeId);
  94.         if (activeId > 2) { activeId = 0;};
  95.         if (activeId < 0) { activeId = 2;};
  96.         this.active = ColorPicker.colorElements[activeId];
  97.     }
  98.  
  99.     _setActive(color)
  100.     {
  101.         for (let colorId of ColorPicker.colorElements)
  102.         {
  103.             if (colorId != color ) { document.getElementById(colorId).style.borderStyle = 'solid'; };      
  104.             if (colorId == color ) { document.getElementById(colorId).style.borderStyle = 'dotted'; };
  105.         }
  106.     }
  107.  
  108.     _updateColor()
  109.     {
  110.         let rgbStr = `rgb(${this.red},${this.green},${this.blue})`;
  111.         rgbContainer.style.backgroundColor = rgbStr;
  112.         //console.log(rgbStr);
  113.     }
  114.  
  115.     _updateNumbers()
  116.     {
  117.         inRed.value = this.red;
  118.         inGreen.value = this.green;
  119.         inBlue.value = this.blue;
  120.     }
  121.  
  122.     handleEvent(event)
  123.     {
  124.         //console.log(event.target.id);
  125.         this[`on${event.type[0].toUpperCase() + event.type.slice(1)}`](event);
  126.     }
  127.  
  128.     onWheel(event)
  129.     {
  130.         let color = event.target.id;
  131.         //console.log(color);
  132.         event.preventDefault();
  133.         if (ColorPicker.colorElements.includes(color))
  134.         {
  135.             this[color] += Math.floor( event.deltaY * -0.1 );
  136.         }
  137.         if ( color === 'rgbContainer')
  138.         {
  139.             for(let colorId of ColorPicker.colorElements)
  140.             {
  141.                 this[colorId] += Math.floor( event.deltaY * -0.1 );
  142.             }
  143.         }
  144.         this._updateNumbers();
  145.     }
  146.  
  147.     onChange(event)
  148.     {
  149.         let inColor = event.target.id;
  150.         console.log(inColor);
  151.         if (ColorPicker.inElements.includes(inColor))
  152.         {
  153.             let color = inColor.slice(2).toLowerCase();
  154.             this[color] = parseInt(event.target.value);
  155.         }
  156.     }
  157.  
  158.     onMousedown(event)
  159.     {
  160.         let clickerClassList = event.target.classList;
  161.         if ( clickerClassList.contains('colorBlock'))
  162.         {
  163.             let color = event.target.id;
  164.             event.preventDefault();
  165.             if (event.button === 0 ) { this[color] = 0; this._updateNumbers();};
  166.             if (event.button === 1 ) { this[color] = 255; this._updateNumbers();};
  167.         }
  168.     }
  169.  
  170.     onClick(event)
  171.     {
  172.         let clickerClassList = event.target.classList;
  173.         if ( clickerClassList.contains('changeButtons'))
  174.         {
  175.             let action = event.target.id[0];
  176.             let color = event.target.id.slice(1).toLowerCase();
  177.             if ( action === 'p') { this[color] += 15; };
  178.             if ( action === 'm') { this[color] -= 15; };
  179.             this._updateNumbers();
  180.         }
  181.         console.log('click catched!');
  182.         this._cycleActive();
  183.     }
  184.  
  185.     onMouseover(event)
  186.     {
  187.         let clickerClassList = event.target.classList;
  188.         if ( clickerClassList.contains('colorBlock'))
  189.         {
  190.             let color = event.target.id;
  191.             this.active = color;
  192.         }
  193.     }
  194.  
  195.     onMouseout(event)
  196.     {
  197.         let clickerClassList = event.target.classList;
  198.         if ( clickerClassList.contains('colorBlock'))
  199.         {
  200.             let color = event.target.id;
  201.             this.active = 'none';
  202.         }
  203.     }
  204. }
  205.  
  206. let colorPicker = new ColorPicker();
  207.  
  208. rgbContainer.addEventListener('wheel', colorPicker);
  209. rgbContainer.addEventListener('change', colorPicker);
  210. rgbContainer.addEventListener('mousedown', colorPicker);
  211. rgbContainer.addEventListener('click', colorPicker);
  212. rgbContainer.addEventListener('mouseover', colorPicker);
  213. rgbContainer.addEventListener('mouseout', colorPicker);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement