DIY рдбреЛрдЬреЛ рд╡рд┐рдЬреЗрдЯ

рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЛ рд╢реБрдн рджрд┐рд╡рд╕! рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрд▓рдИрдбреА рд╕рдВрдХреЗрддрдХ (рдШрдбрд╝реА, рдЯрд╛рдЗрдорд░, рдЖрджрд┐) рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Dojo рдкрд░ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдирд╣реАрдВ рддрд▓реНрд▓реАрди рдХрд░реВрдВрдЧрд╛ - рд╡рд┐рд╖рдп рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореВрд▓ рд╡рд░реНрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдФрд░ рд▓рдЧрднрдЧ рд╣рд░ JS рдлреНрд░реЗрдорд╡рд░реНрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
Dojo рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
dojo.declare( ' ', [1,2,...], { / } ); 


рд╣рдорд╛рд░рд╛ рд╡рд┐рдЬреЗрдЯ рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ - рдЖрдзрд╛рд░ dijit._Widget рдФрд░ dijit._Templated , рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ DOM рдиреЛрдб рдмрдирд╛рдирд╛ рд╣реИред
рдЯреЗрдореНрдкрд▓реЗрдЯ ред
Dijit._Widget рд╡рд░реНрдЧ рдХрдИ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реВрдЪреА рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ), рд╣рдо рдкреЛрд╕реНрдЯрдХреНрд░рд┐рдПрдЯ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  postCreate : function () { this.digits = dojo.query('.digit', this.containerNode); this.render(); }, 


рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╣рдо рдЕрдВрдХреАрдп рд╡рд░реНрдЧ ( рд╕реНрдкреИрди рддрддреНрд╡реЛрдВ рдЬреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ) рдФрд░ рдХрд╕реНрдЯрдо рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░рдПрдиреЛрдб ( рдбреЛрдЬрд╝реЛ рдПрдЯрд╛рдЪреЙрдкреНрдЯрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп) рдореЗрдВ рдирд┐рд╣рд┐рдд рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рд╕реВрдЪрдХ рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди ( рд╕реЗрдЯрд╡реИрд▓реНрдпреВ рд╡рд┐рдзрд┐) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд╣рдо рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ ( digit_0, digit_1, ... digit_9 ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ ред рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрд░реНрдг рд╡рд┐рдЬреЗрдЯ рдХреЛрдб рджреВрдВрдЧрд╛:

  dojo.declare( 'LedIndicator', [dijit._Widget,dijit._Templated], { currentValue : '000000', templateString: "<div>" + '<span class="led" dojoAttachPoint="containerNode">' + '<span class="digits"><span class="digit"></span><span class="digit"></span></span>' + '<span class="digits"><span class="digit"></span><span class="digit"></span></span>' + '<span class="digits"><span class="digit"></span><span class="digit"></span></span>' + "</div>" , postCreate : function () { this.digits = dojo.query('.digit', this.containerNode); this.render(); }, render : function () { var i = 0; var dc = Math.min(this.digits.length, this.currentValue.length); this.digits.removeClass(); for (i=0; i < dc; i++) { dojo.addClass(this.digits[i],'digit_'+this.currentValue.charAt(i)); } }, setValue : function (value) { this.currentValue = value; this.render(); } } ); 


рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИ, рдЕрдм рд╣рдо рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
 <div dojoType="LedIndicator" id="led_1" class="led"></div> 


рдореИрдВ рд╕реАрдПрд╕рдПрд╕ рдирд╣реАрдВ рджреВрдВрдЧрд╛ - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


Dojo рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - рдШреЛрд╖рдгрд╛рддреНрдордХ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХред

рдШреЛрд╖рд┐рдд рд╡рд┐рдзрд┐ HTML рдорд╛рд░реНрдХрдЕрдк рд╕реЗ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рдХрд╛ рд▓рд╛рдн рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдЧрддрд┐ рд╣реИ, рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдбреЛрдо рдкреЗрдбрд╝ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рд╕реЗ рдмрдбрд╝реЗ рдкреГрд╖реНрдареЛрдВ рдХреА рд▓реЛрдбрд┐рдВрдЧ рдЧрддрд┐ рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рдбрд┐рдХреНрд▓реЗрдХреНрдЯрд┐рд╡ рдореЗрдердб рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд░реНрдХрд┐рдВрдЧ рд╡рд░реНрдЬрди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред
рдЗрди рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдпрд╣рд╛рдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ред

рд▓реЗрдЦ рдкреВрд░реНрдг рдФрд░ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

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


All Articles