Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.05.2018, 10:42
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Переход к следующему элементу поиска
Добрый день уважаемые форумчане!

Прошу вашей помощи!

Ни как не могу добиться следующего результата:

Хотелось бы чтобы при вводе цели поиска в поисковую строку, находился не только результат, но и происходил скрол по станице к найденному элементу!
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2018, 10:43
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Вот сам код
Ответить с цитированием
  #3 (permalink)  
Старый 25.05.2018, 10:48
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function searchAndHighlight(searchTerm, selector) {
if (searchTerm) {
//var wholeWordOnly = new RegExp("\\g"+searchTerm+"\\g","ig"); //matches whole word only
//var anyCharacter = new RegExp("\\g["+searchTerm+"]\\g","ig"); //matches any word with any of search chars characters
var selector = selector || "#realTimeContents"; //use body as selector if none provided
var searchTermRegEx = new RegExp(searchTerm, "ig");
var matches = $(selector).text().match(searchTermRegEx);
if (matches != null && matches.length > 0) {
$('.highlighted').removeClass('highlighted'); //Remove old search highlights 

//Remove the previous matches
$span = $('#realTimeContents span');
$span.replaceWith($span.html());

/*if (searchTerm === "&") {
searchTerm = "&amp;";
searchTermRegEx = new RegExp(searchTerm, "ig");
}
if (searchTerm === " ") {
searchTerm = "&nbsp;";
searchTermRegEx = new RegExp(searchTerm, "ig");
}*/
if (searchTerm.length === 2) {
//searchTerm = "&amp;";
//searchTermRegEx = new RegExp(searchTerm, "ig");
alert("Нужно ввести более двух символов!");
return;
}

$(selector).html($(selector).html().replace(search TermRegEx, "<span class='match'>" + searchTerm + "</span>"));
$('.match:first').addClass('highlighted');

var i = 0;

$('.nextButton').off('click').on('click', function () {
i++;

if (i >= $('.match').length) i = 0;

$('.match').removeClass('highlighted');
$('.match').eq(i).addClass('highlighted');
$('.ui-mobile-viewport').animate({
scrollTop: $('.match').eq(i).offset().top
}, 300);
});
$('.previousButton').off('click').on('click', function () {

i--;

if (i < 0) i = $('.match').length - 1;

$('.match').removeClass('highlighted');
$('.match').eq(i).addClass('highlighted');
$('.ui-mobile-viewport').animate({
scrollTop: $('.match').eq(i).offset().top
}, 300);
});




if ($('.highlighted:first').length) { //if match found, scroll to where the first one appears
$(window).scrollTop($('.highlighted:first').positi on().top);
}
return true;
}
}
return false;
}

$(document).on('click', '.searchButtonClick', function (event) {

$(".highlighted").removeClass("highlighted").remov eClass("match");
if (!searchAndHighlight($('.textSearch').val())) {
alert("Нет совпадений!");
}


});
function handleEnter(inField, e)
{
var charCode;

//Get key code (support for all browsers)
if(e && e.which)
{
charCode = e.which;
}
else if(window.event)
{
e = window.event;
charCode = e.keyCode;
}

if(charCode == 13)
{
$('.searchButtonClick').click(); //Call your submit function
}
}
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2018, 13:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Mike.P
Хотелось бы чтобы при вводе цели поиска в поисковую строку, находился не только результат, но и происходил скрол по станице к найденному элементу!
http://dontforget.pro/javascript/pla...ntu-na-jquery/
https://webkab.ru/plavnyj-skroll-k-elementu-jquery/
Ответить с цитированием
  #5 (permalink)  
Старый 25.05.2018, 13:40
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Сообщение от ksa Посмотреть сообщение
http://dontforget.pro/javascript/pla...ntu-na-jquery/
https://webkab.ru/plavnyj-skroll-k-elementu-jquery/
А можно ли как то поправить часть моего кода???
Ответить с цитированием
  #6 (permalink)  
Старый 25.05.2018, 13:49
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Так как не до конца могу понять как внедрить то что Вы сбросили в сам код))
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2018, 14:47
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Нашел что то похожее, что мне нужно, но ни как не могу правильно его запилить в свой код!
function scrollToFirstFoundTerm()
{
 var firstFoundTerm = $('.highlight:first');
    if (firstFoundTerm.length > 0)
         $('html').scrollTop(firstFoundTerm.offset().top);
Ответить с цитированием
  #8 (permalink)  
Старый 25.05.2018, 23:26
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<style>
	div{
	margin: 1000px 0;
}
</style>
<div>0</div>
<div>1</div>
<div>2</div>
<script>
document.querySelectorAll('div')[2].scrollIntoView({ behavior: 'smooth' });
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 29.05.2018, 11:30
Новичок на форуме
Отправить личное сообщение для Mike.P Посмотреть профиль Найти все сообщения от Mike.P
 
Регистрация: 25.05.2018
Сообщений: 7

Сообщение от j0hnik Посмотреть сообщение
<style>
	div{
	margin: 1000px 0;
}
</style>
<div>0</div>
<div>1</div>
<div>2</div>
<script>
document.querySelectorAll('div')[2].scrollIntoView({ behavior: 'smooth' });
</script>
Это нужно заключить каждую ссылку в <div>???
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход на страницу к определенному элементу yurasa Элементы интерфейса 4 14.02.2017 22:46
Переход на страницу к элементу с определённым классом (тема не повторяет предыдущую!) yurasa Элементы интерфейса 2 14.02.2017 20:56
При нажатии на div происходит переход к следующему от него Адам Элементы интерфейса 2 05.01.2017 23:29
Плавный переход к элементу по внешней ссылке deniskutovskiy jQuery 13 16.10.2015 22:30
Обратиться к следующему элементу. Antistas Элементы интерфейса 4 01.11.2012 17:05