рдЕрдЪреНрдЫреЗ рджрд┐рди рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВред рдореИрдВ рдЖрдкрдХрд╛ рдЫреЛрдЯрд╛ jQuery рдкреНрд▓рдЧрдЗрди рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдкреНрд▓рдЧрдЗрди рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рд╕рдВрдХреЗрдд рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдорд┐рд▓реЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рднрд╛рд░реА рдереЗ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рдереЗред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдЬреЗрдПрд╕ рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдерд╛ред
рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп рдХреЛрдб рдореЗрдВ рдЗрддрдиреА рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдзрдХреЗрд▓рдирд╛ рдерд╛ рддрд╛рдХрд┐ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдмрд╛рдИрдВ / рджрд╛рдИрдВ / рдиреАрдЪреЗ / рд╢реАрд░реНрд╖ рджреЛрдиреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдорд╛рдЙрд╕ рдХрд░реНрд╕рд░ рд╕реЗ рдЪрд┐рдкрдХ рдЬрд╛рдПред
рддреАрд╕рд░рд╛ рдХрд╛рд░реНрдп (рдЬреЗрдПрд╕ рдкрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рдерд╛) рдкреНрд░реЗрд░рд┐рдд рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред
рд▓реЗрдЖрдЙрдЯ рд╕рд░рд▓ рдирд┐рдХрд▓рд╛:
<div class="tooltip-wrapper"> <input type="text" class="field"> <div class="valid-message valid-message-js"> </div> </div>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреВрд▓рдЯрд┐рдк-рд░реИрдкрд░ рдмреНрд▓реЙрдХ рд╣реИ рдЬреЛ рдЯреВрд▓рдЯрд┐рдк рдХреЛ рдЙрд╕ рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЯреВрд▓рдЯрд┐рдк рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрдирдХреА рд╢реИрд▓реА рднреА рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИрдВ:
.tooltip-wrapper{ position: relative; display: inline-block; }
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ (рдЗрдирдкреБрдЯ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ) рдФрд░ рдорд╛рдиреНрдп-рд╕рдВрджреЗрд╢ рд╕рдВрджреЗрд╢ рд╕реНрд╡рдпрдВред рдореИрдВ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╡реИрдз-рдорд╛рд▓рд┐рд╢ рдФрд░ рд╡реИрдз-рдорд╛рд▓рд┐рд╢-рдЬреЗрдПрд╕ рд╣реИрдВред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЯреВрд▓рдЯрд┐рдк рдореЗрдВ рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ: рдирд┐рд░рдкреЗрдХреНрд╖ред
рдЕрдм рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣реА рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
(function($){ tooltip = function() { this._init = function(element, options) { var defaults = { tooltipElement: $(element), tooltipSide: "right", fix: false }, settings = $.extend(defaults, options); settings.tooltipElement.each(function(i){ if (settings.fix == false) { var tooltipElementHeight = $(this).actual( "outerHeight", { absolute : true } ), tooltipWrapperHeight = $(this).parent(".tooltip-wrapper").actual( "outerHeight", { absolute : true } ), tooltipElementWidth = $(this).actual( "outerWidth", { absolute : true } ), tooltipWrapperWidth = $(this).parent(".tooltip-wrapper").actual( "outerWidth", { absolute : true } ); if (settings.tooltipSide == "left") { $(this).addClass('tooltip-left').css({top:-(tooltipElementHeight/2 - tooltipWrapperHeight/2)}); } else if (settings.tooltipSide == "right"){ $(this).addClass('tooltip-right').css({top:-(tooltipElementHeight/2 - tooltipWrapperHeight/2)}); } else if (settings.tooltipSide == "top"){ $(this).addClass('tooltip-top').css({left: -((tooltipElementWidth - tooltipWrapperWidth)/2)}); } else if (settings.tooltipSide == "bottom"){ $(this).addClass('tooltip-bottom').css({left: -((tooltipElementWidth - tooltipWrapperWidth)/2)}); } } else{ $(document).mousemove(function (pos) { settings.tooltipElement.css({top: pos.clientY+10, left: pos.clientX+10}); }); } }); }; };
рдЕрдм рдореБрдЭреЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдХрд┐ рдХреНрдпрд╛ рд╣реИред
рдкреНрд▓рдЧрдЗрди рдирд╛рдо (рдЯреВрд▓рдЯрд┐рдк) рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрд╕рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдпрд╣ рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд▓реЙрдХ рд╣реИред
$('.valid-massege-js').tooltip();
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд▓рдЧрдЗрди рдкрд╛рда рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдПрдХ рдЯреВрд▓рдЯрд┐рдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ - рдЯреВрд▓рдЯрд╛рдЗрдк: "рд╕рд╣реА"
рдпрд╣ рдорд╛рди рдХрд┐рд╕реА рднреА рдЪрд╛рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд▓реЛрдЧреЛрдВ (рд╢реАрд░реНрд╖ / рджрд╛рдПрдВ / рдиреАрдЪреЗ / рдмрд╛рдПрдВ) рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд▓рдЧрдЗрди рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$('.valid-massege-js').tooltip({ tooltipSide: "bottom" });
HTML рдХреЛрдб рдореЗрдВ, рдЬрдм рдПрдХ рдкрдХреНрд╖ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЗрдб рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ (рдЯреВрд▓рдЯрд┐рдк-рдЯреЙрдк / рдЯреВрд▓рдЯрд┐рдк-рд░рд╛рдЗрдЯ / рдЯреВрд▓рдЯрд┐рдк-рдмреЙрдЯрдо / рдЯреВрд▓рдЯрд┐рдк-рд▓реЗрдлреНрдЯ)ред
.valid-message.tooltip-left{ right: 100%; margin-right: 10px; } .valid-message.tooltip-right{ left: 100%; margin-left: 10px; } .valid-message.tooltip-top{ bottom: 100%; margin-bottom: 10px; } .valid-message.tooltip-bottom{ top: 100%; margin-top: 10px; }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХрд░реНрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓рдЯрд┐рдк рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдКрдкрд░ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$('.valid-message-js').tooltip({ fix: true });
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ jquery.actual рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд┐рдд рдордд рд╣реЛ, рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВ jquery.actual 1 kb рд▓реЗрддрд╛ рд╣реИред рдФрд░ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рдпрд╣ рдЕрдиреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЫрд┐рдкреЗ рд╣реБрдП рддрддреНрд╡реЛрдВ рдкрд░ .net () рдФрд░ .height () рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдмрдЧ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЙрд╕реЗ
рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдореЛ рджреЗрдЦреЗрдВ