рдкреГрд╖реНрда рдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдЦреЛрдЬреЗрдВ рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ - jQuery)

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

JQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ jQuery рдХреЗ рд▓реЗрдЦ - рдкрд╛рда рдпрд╛ HTML рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЛ рдпрд╣рд╛рдБ рд╕реЗ ( рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг ) рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреЗрдЬ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рд╡рд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдиреАрдЪреЗ "рд╢рдмреНрдж" = "рд╡рд╛рдХреНрдпрд╛рдВрд╢" = "рдЕрдХреНрд╖рд░реЛрдВ рдФрд░ / рдпрд╛ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рдЕрдм рдЪрд▓реЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
рдЦреЛрдЬ рдмрдЯрди, рдЕрдЧрд▓реЗ рд╢рдмреНрдж рдФрд░ рдкрд┐рдЫрд▓реЗ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдФрд░ рдЪрдпрдирд┐рдд рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ

1) рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрдж рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдирд╛
jquery.highlight.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
jQuery.fn.selectHighlight = function(number) { return this.find("span.highlight:eq("+number+")").addClass('selectHighlight').end(); }; 


2) рд╢реИрд▓реА рдореЗрдВ рд╣рдо рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╢рдмреНрдж рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╢реИрд▓реА рдмрджрд▓рддреЗ рд╣реИрдВ
 .highlight { background-color: gray; color: white } .selectHighlight { background-color: rgb(35, 140, 0) } 


3) рдмрдЯрди рдФрд░ рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдПрдБ
 <div id="search_block"> <label> Search: <input id="search_text" type="text" value=""/> </label> <input id="search_button" type="button" value="Search"/> <input id="prev_search" type="button" value="<"/> <input id="next_search" type="button" value=">"/> <input id="clear_button" type="button" value="Clear"/> </div> 


4) рдПрдХреНрд╢рди рдмрдЯрди рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ:

(рдореИрдВ рдиреАрдЪреЗ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╛рд░реЛрд╣ рдХреНрдпрд╛ рд╣реИ)
 function scroll_to_word(){ pos = $('#text .selectHighlight').position() $('#content').jqxPanel('scrollTo', 0, pos.top - 5); } 

  var search_number = 0; //     var search_count = 0; //   //search -       "search_button" $('#search_button').click(function() { $('#text').removeHighlight(); txt = $('#search_text').val(); if (txt == '') return; $('#text').highlight(txt); search_count = $('#text span.highlight').size() - 1; search_number = 0; $('#text').selectHighlight(search_number); //     scroll_to_word(); //     }); //clear -       "clear_button" $('#clear_button').click(function() { $('#text').removeHighlight(); }); //prev_search -           $('#prev_search').click(function() { if (search_number == 0) return; $('#text .selectHighlight').removeClass('selectHighlight'); search_number--; $('#text').selectHighlight(search_number); scroll_to_word(); }); //next_search -           $('#next_search').click(function() { if (search_number == search_count) return; $('#text .selectHighlight').removeClass('selectHighlight'); search_number++; $('#text').selectHighlight(search_number); scroll_to_word(); }); 


5)
function scroll_to_word(){...} - рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп (рд░реАрд╡рд╛рдЗрдВрдбрд┐рдВрдЧ) рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рдЬрд┐рд╕ рд╢рдмреНрдж рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдареАрдХ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рд░рд▓ jqueryscrollto рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ .highlight рд╡рд░реНрдЧ рдФрд░ рд╕рдВрдЦреНрдпрд╛ eq('+search_number +') ( search_number - рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ)ред
 jQuery('#content').scrollTo('.highlight('+search_number +')'); 


рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ (jqwidgets) рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреНрд░реЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдирдХреЗ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
рд╕реНрдХреНрд░реЛрд▓реНрдЯреЛ рд╡рд┐рдзрд┐
рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
рд╕реНрдХреНрд░реЛрд▓реНрдЯреЛ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
 $('#jqxPanel').jqxPanel('scrollTo', 10, 20); 


 function scroll_to_word(){ pos = $('#text .selectHighlight').position() $('#content').jqxPanel('scrollTo', 0, pos.top - 5); // 5 -            -    } 


рдбреЗрдореЛ
рд╡рд╣ рд╕рдм рдЕрднрд┐рдпрд╛рди рдХреЗ рд▓рд┐рдП рд╣реИред
рдореИрдВ рдЧреИрд░-рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ

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


All Articles