В зависимости от ваших целей и библиотек, которые вы хотели бы использовать, лучше всего использовать различные реализации. Вопрос довольно расплывчатый, поэтому вам трудно дать совет.
В принципе, ваши варианты:
- перерисовки списка изображений с нуля, когда другая картина набором соответствует вашей строке фильтра.
- Начните с отображения всех изображений. Когда строка поиска изменится, скройте изображения, которые не соответствуют поиску, и покажите те, которые соответствуют.
Второй, по-видимому, более подходит для вашего вопроса и его проще реализовать, поэтому я приведу пример для решения здесь. Просто HTML/Javascript, никаких библиотек.
HTML:
<form id="filter_form">
<p>Search:</p>
<input id="filter" name="filter" type="text" size="40" onkeyup="filter_pictures();"></input>
</form>
<p>
<img class="filtered" src="url1"></img>
<img class="filtered" src="url2"></img>
<img class="filtered" src="url3"></img>
</p>
Javascript:
function filter_pictures() {
var $i = 0;
//Get the text we use to filter
var $filter = document.getElementById('filter').value;
//Get all images
var $imgsCollection = document.getElementsByClassName('filtered');
//For every image check if url has filter in it and hide/show as needed.
for ($i = 0; $i < $imgsCollection.length; $i++) {
if ($imgsCollection[$i].getAttribute('src').indexOf($filter) > -1) {
$imgsCollection[$i].style.display = 'block';
} else {
$imgsCollection[$i].style.display = 'none';
}
}
}
В зависимости от конкретной цели, вы можете сделать больше событий огня функции фильтрации (не только OnKeyUp).
Если вы отправите маршрут повторного рисования, вы можете сохранить URL-адреса изображения в массиве, проверить этот массив на фильтр, а затем построить html, включая изображения, которые соответствуют и присваивают его свойству innerHTML div , Вы должны запустить его onkeypress так же, как в примере.
Это именно то, что вы ищете: http://www.sitepoint.com/jquery-filter-images/ – Matheno
Я проверю это, MHakvoort. Спасибо. –
Добро пожаловать в переполнение стека! Ожидается, что вы, по крайней мере, попытаетесь закодировать это для себя. Stack Overflow не является службой записи кода. Я бы предположил, что вы проводите дополнительные исследования, либо через Google, либо путем поиска SO, сделайте попытку и. если у вас все еще есть проблемы, вернитесь ** с кодом ** и объясните, что вы пробовали, и почему это не сработало. –