рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЕрдм рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдЖрдкрдХреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓рд╕ рдФрд░ рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред
рд╡реЗрдм рдкрд░, рдРрд╕рд╛ рдкреНрд░рднрд╛рд╡ рдХреЗрд╡рд▓ рдЬрдбрд╝ рд▓реЗ рд░рд╣рд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕реЛрдЪрдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рддрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ ... рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рд╣реА рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬреЛ рдкреГрд╖реНрда рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдкрд░ рдЧреИрд▓рд░реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╣рдордд рд╣реВрдБ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рддреБрд░рдВрдд рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ, рдЬреИрд╕реЗ рд╣реА рдорд╛рдЙрд╕ рдмрдЯрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЬрдбрд╝рддрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рд╣рд╛, рдзреАрд░реЗ-рдзреАрд░реЗ рд░реЛрдХрдирд╛ ...
рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ рдЖрдк
рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рд╕реНрд▓рд╛рдЗрдбрд░ + "рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ" рдЦреАрдВрдЪрдХрд░) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ:
- рдорд╛рдЙрд╕ рдХреЛ рдкрдХрдбрд╝реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░, рдХреНрд▓рд┐рдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдпрд╛рдж рд░рдЦреЗрдВред
- рдЯреНрд░реИрдХ рдорд╛рдЙрд╕рд╡реНрдпреВред рдпрджрд┐ рдПрдХ рдХреНрд▓рд┐рдХ (рдмрд┐рдВрджреБ 1) рдерд╛, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдирдП рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдХреБрдЫ рднреА рди рдХрд░реЗрдВред
- рдЧрддрд┐ рдХреЛ рдорд╛рдкреЗрдВред рдмрд╕ dx рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ: рдПрдХ рдорд╛рдЙрд╕рд╡реНрдпреВ рдШрдЯрдирд╛ рдореЗрдВ x- рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЛ рдмрджрд▓рдирд╛ред
- рдорд╛рдЙрд╕рдЕрдк рдкрдХрдбрд╝реЛред рдЕрдВрддрд┐рдо dx рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдХреБрдЫ рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рджреВрд░реА рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
- рдХреНрд╖реАрдгрди рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╡рд╛рдВрдЫрд┐рдд рджреВрд░реА рдкрд░ рд╡рд╕реНрддреБ рдХреА рдЧрддрд┐ рдХреЛ рдЪреЗрддрди рдХрд░рдирд╛ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рди рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ ...
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк jQuery рдпреВрдЖрдИ рд╕реЗ jQuery рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╕рд╣рдЬрддрд╛ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
HTML рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
<div id="track"> <div id="thumb"></div> </div>
рдЬрд╣рд╛рдВ рдЯреНрд░реИрдХ рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд▓рд╛рдЗрдбрд░ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдЧреВрдареЗ рд╣реА рд╕реНрд▓рд╛рдЗрдбрд░ рд╣реИред
рд╕реАрдПрд╕рдПрд╕: #track { width: 500px; position: relative; display: block; height: 22px; margin: 20px; border: solid 1px #000; overflow: hidden; } #track #thumb { width: 70px; height: 22px; position: absolute; background-color: gray; left: 200px; }
рдЕрдм рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рд╣реИ ... рдЖрдк рдЗрд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ jQuery рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ:
- $ рдЯреНрд░реИрдХ (jQuery рдСрдмреНрдЬреЗрдХреНрдЯ) - рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рдХреНрд╖реЗрддреНрд░
- $ рдЕрдВрдЧреВрдард╛ (jQuery рдСрдмреНрдЬреЗрдХреНрдЯ) - рд╕реНрд▓рд╛рдЗрдбрд░
- isClicked (рдмреВрд▓) - рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- clickPointX (int) - x рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд╛ рд╕рдордиреНрд╡рдп
- dx (int) - рдПрдХ рдорд╛рдЙрд╕рдореЛрд╡ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ x рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдмрджрд▓рдирд╛ред
var $track = $('#track'); var $thumb = $('#thumb'); var isClicked = false; var clickPointX = 0; var dx = 0;
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рд▓рд╛рд▓ рд╕рд┐рд░ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВ:
$thumb.bind('dragstart', false);
рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдорд╛рдЙрд╕рдбрд╛рдЙрди рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ:
$thumb.mousedown( function(e) {
рд╣рдо MouseMove рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкреВрд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░
$(document).mousemove( function(e) { if (isClicked) {
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдЕрдШреЛрд╖рд┐рдд рдЪрд░
maxBorderOut рд╕реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ , рдЬреЛ рдЕрдзрд┐рдХрддрдо рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдорд╛рдЙрд╕рдЕрдк:
$(document).mouseup( function(e) { if (isClicked) { if (Math.abs(dx) < lapse) { dx = 0; } var selfLeft = parseInt($thumb.css('left'));
рдЪреВрдХ рдЪрд░ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░
dx рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдПрдиреАрдореЗрд╢рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдорд╛рди рдХреЛ рдЖрдБрдЦ рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрд╡реЗрдЧ рдЪрд░ рд╕реНрд▓рд╛рдЗрдбрд░ рдкрд░ рдХреБрдЫ рдЖрд╡реЗрдЧ рдЕрднрд┐рдирдп рдХрд╛ рдореВрд▓реНрдп рд╣реИ, рдФрд░ рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рджреВрд░реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЧреБрдгрд╛рдВрдХ
dx рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЖрдВрдЦ рд╕реЗ рднреА рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред
рдЧрддрд┐ - рдПрдиреАрдореЗрд╢рди рдЧрддрд┐ред
рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдХрд░, рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рдХрд╛ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд╣ рднрд╛рдЧ рдЬреЛ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдФрд░ "рдХрд╛рдЗрдиреЗрдЯрд┐рдХ" рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рдкреНрд░рднрд╛рд╡ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдкреГрд╖реНрдард╛рдВрдХрди, рдЫрд╡рд┐ рджреАрд░реНрдШрд╛рдУрдВ рдЖрджрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред
UPD рдПрдХ jQuery рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдпрд╛, рдЖрдк рдЗрд╕реЗ
рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдПрдХ рд╕рд░рд▓
рд╣рд┐рдВрдбреЛрд▓рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ...
рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
<div id="track"></div>
$('#track').kineticBar()