рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд▓рд░ рдкрд┐рдХрд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдХреА рдереА рд╡рд╣ рдПрдХ рд░рдЪрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рд░рдВрдЧ рдмреАрдирдиреЗ рд╡рд╛рд▓рд╛) рдХреА рддрд▓рд╛рд╢ рдореЗрдВ Google рдерд╛ред рдирддреАрдЬрддрди, рдореИрдВ рдирд┐рд░рд╛рд╢ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рддреИрдпрд╛рд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдФрд░ рдореЗрд░реЗ рд░рдВрдЧ рдмреАрдирдиреЗ рд╡рд╛рд▓реЗ рдиреЗ рд▓рд┐рдЦрд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЪреВрдБрдХрд┐ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╢реБрджреНрдз js рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ (рдПрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛ рдореИрдВ рдЦреБрдж рд▓рд┐рдЦрддрд╛ рд╣реВрдВ :)) рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдХрдЯреНрдЯрд░ рд╢реБрджреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧреАред
Cp рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░рдВрдЧ рдкрд┐рдХрд░):


1.CSS рдФрд░ html



<div class="picker" id="primary_block" > <div id="line"> <div id="arrows"> <div class="left_arrow"></div> <div class="right_arrow"></div> </div> </div> <div id="block_picker"> <img src="img/bgGradient.png" class="bk_img"><div id="circle"></div> </div> </div> 

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓рддрдо рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдм рд╕реА.рдПрд╕.
 .right_arrow { width:0; height:0; left:23px; position:absolute; border-bottom:6px solid transparent; border-left:10px solid transparent; border-top:6px solid transparent; border-right:10px solid black; }//    .circle { width:8px; height:8px; border:1px solid black; border-radius:50%; position:absolute; left:0; top:0; cursor: default; -moz-user-select: none; -khtml-user-select: none; user-select: none; -webkit-user-select: none; } 

рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рднреА рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк (рдХреЗрд╡рд▓ рд╕реНрдерд┐рддрд┐ рддрддреНрд╡) рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред

2.Javascript


рдЦреИрд░, рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рд╣реНрдпреВ рд╕реНрдХреЗрд▓ рд╕реЗ рдбреНрд░рд╛рдЗрдВрдЧ), рдФрд░ рдореИрдВ рдХреИрдирд╡рд╛рд╕ рдкрд░ (рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдРрд╕рд╛ рдХрд░реВрдВрдЧрд╛ред

 gradient: function(canva,w,h){ /* canva-  canvas h -   w-  */ var context, gradient, hue; context = canva.getContext("2d"); gradient = context.createLinearGradient(w/2,h,w/2,0); hue = [[255,0,0],[255,255,0],[0,255,0],[0,255,255],[0,0,255],[255,0,255],[255,0,0]]; //   hue  rgb for (var i=0; i <= 6;i++){ color = 'rgb('+hue[i][0]+','+hue[i][1]+','+hue[i][2]+')'; gradient.addColorStop(i*1/6, color); }; context.fillStyle = gradient; context.fillRect(0,0, w ,h); } 

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖред рдЗрд╕рдХреЗ рдмрд╛рдж рддреБрдЪреНрдЫ рдШрдЯрдирд╛ рд╣реБрдХрд┐рдВрдЧ рдЖрддреА рд╣реИ (рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛)ред
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рд░рдВрдЧ рдХреЗ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдПрдЪрдПрд╕рд╡реА рд╣реЛрдЧрд╛
HSV рдПрдХ рд░рдВрдЧ рдореЙрдбрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рдВрдЧ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ:

рд░рдВрдЧ - рд░рдВрдЧ рдЯреЛрди, (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рд▓, рд╣рд░рд╛ рдпрд╛ рдиреАрд▓рд╛-рдиреАрд▓рд╛)ред рдпрд╣ 0-360 ┬░ рдХреЗ рдмреАрдЪ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ 0-100 рдпрд╛ 0-1 рдХреА рд╕реАрдорд╛ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрддреГрдкреНрддрд┐ - рд╕рдВрддреГрдкреНрддрд┐ред 0-100 рдпрд╛ 0-1 рдХреЗ рдмреАрдЪ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, "рдХреНрд▓реАрдирд░" рд░рдВрдЧ, рдЙрддрдирд╛ рд╣реА рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХрднреА-рдХрднреА рд░рдВрдЧ рд╢реБрджреНрдзрддрд╛ рдХрд╣рд▓рд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд╣реИ, рд░рдВрдЧ рдХреЗ рдХрд░реАрдм рдЧреНрд░реЗ рддрдЯрд╕реНрде рд╣реИред

рдорд╛рди (рд░рдВрдЧ рдорд╛рди) рдпрд╛ рдЪрдордХ - рдЪрдордХред рдЗрд╕реЗ 0-100 рдФрд░ 0-1 рдХреЗ рдмреАрдЪ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЗрд╕реЗ рд╣рдорд╛рд░реА cp рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдиреАрдЪреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 1)



рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реНрдпреВ рд╕реНрдХреЗрд▓ рд╣реИ, рд╣рдореЗрдВ рд╕рдВрддреГрдкреНрддрд┐ рдФрд░ рдореВрд▓реНрдп (рд░рдВрдЧ рдореВрд▓реНрдп) рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ S рдФрд░ V рдХрд╛ рдорд╛рди 0-100 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ:
рдпрджрд┐ рдмреНрд▓реЙрдХ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ 100 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ?
-
 var px_X = elem.clientWidth / 100; /*   px    . :   180 180/100 ,    1       1,8; */ var S = left / px_X;//   left   "" (div c id = "circle")  Math.round(S);//    

рдЬрдм "рд╕рд░реНрдХрд▓" рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрд╕ рдФрд░ рд╡реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ (рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд┐рддреНрд░ рдХреЗ рддрд╣рдд рдкреГрд╖реНрдарднреВрдорд┐ рдмрджрд▓рддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ рдЕрд░реНрдз рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ)ред
рд▓реЗрдХрд┐рди рдПрдЪрдПрд╕рд╡реА рд╕реЗ рдЖрд░рдЬреАрдмреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдЪрд░рдг рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рд╕реВрддреНрд░ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
  hsv_rgb: function (H,S,V){ var f , p, q , t, lH; S /=100; V /=100; lH = Math.floor(H / 60); f = H/60 - lH; p = V * (1 - S); q = V *(1 - S*f); t = V* (1 - (1-f)* S); switch (lH){ case 0: R = V; G = t; B = p; break; case 1: R = q; G = V; B = p; break; case 2: R = p; G = V; B = t; break; case 3: R = p; G = q; B = V; break; case 4: R = t; G = p; B = V; break; case 5: R = V; G = p; B = q; break; } return [parseInt(R*255), parseInt(G*255), parseInt(B*255)]; } 

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рд╡рд╣ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ cp рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рдХрд░реВрдБрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд░рдВрдЧ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ ...

3. рд╕рдВрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП


рдпрд╣реА рдореБрдЭреЗ рдПрдХ рдбреЗрдореЛ рдорд┐рд▓рд╛ред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдмрд┐рдирд╛ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╕реАрд▓рд┐рдВрдЧ рдХреЗ cp рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдбреНрд░реИрдЧ` рдПрди`рдбреНрд░реЙрдк рдореЗрдВ рдпрд╣ рдмрд╛рдд рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ!
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж CyBer_UA рдерд╛ рдФрд░ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╣реИ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдирд╣реАрдВ)ред
рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ P.s.code рдХреБрдЯрд┐рд▓ рд╣реИ (рдпрд╣ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛), рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдорд┐рд▓рд╛ рд╣реИред

Source: https://habr.com/ru/post/In147032/


All Articles