Я пробую делать русско-португальский словарь с помощью виджета Accordion. Каждая словарная статья в своём ящике, которая откроется по щелчку. Вот то, что сделано до сих пор:
A вот код HTML для статьей. Он повторяется в четырёх статях, с другими словами внутри скобок, которые определяют искомый термин. Морфология слова, падежи, перевод на португальский.
<div class="accordionWrapper">
<div class="accordionItem close">
<h2 class="accordionItemHeading">авианосец</h2>
<div class="accordionItemContent">
<p class="entry">авиано́с||ец <sub class="morfol">m</sub></p>
<p class="case">G.sing.= <span class="declen">-ца</span></p>
<p class="case">N.pl.= <span class="declen">-цы</span></p>
<p class="case">G.pl.= <span class="declen">-цев</span></p>
<p class="transl">porta-aviões <sub class="morfol_transl">m</sub></p>
</div>
</div>
(...)
</div>
Вот код CSS:
.accordionItem {
display: block;
(...)
}
.accordionItemHeading {
cursor: pointer;
(...)
}
.close .accordionItemContent {
height:0px;
-webkit-transform: scaleY(0);
float:left;
display:block;
}
.open .accordionItemContent {
display:block;
-webkit-transform: scaleY(1);
-webkit-transform-origin: top;
(...)
}
.open .accordionItemHeading {
margin:0px;
(...)
}
А вот код Javascript, для определения аккордеона:
<script>
var accItem = document.getElementsByClassName('accordionItem');
var accHD = document.getElementsByClassName('accordionItemHeading');
for (i = 0; i < accHD.length; i++) {
accHD[i].addEventListener('click', toggleItem, false);
}
function toggleItem() {
var itemClass = this.parentNode.className;
for (i = 0; i < accItem.length; i++) {
accItem[i].className = 'accordionItem close';
}
if (itemClass == 'accordionItem close') {
this.parentNode.className = 'accordionItem open';
}
}
</script>
Код для аккордеона я скопировал и адаптировал из jsFiddle.
С сих пор, мне хочется добавить линейку сортировки по первым буквам каждого термина.
В W3Schools я нашёл этот пример на странице "Filter List".
Когда ввожу букву "a" в линейку поиска, список сортируется. Между тем, судя по результату, это не фильтр по первой букве, а фильтр по содержанию данной буквы внутри слова.
Я хотел бы сделать похожий инструмент сортировки с линейкой поиска, который сортирует статьи аккордеона по буквам в начале слова. Но не знаю, как адаптировать пример из W3Schools, какие классы надо заменить какими, и т.д.. Что делать? Спасибо.
P.S.: Если хочу добавлять массу слов в будущем, лучше связать страницу с базой данных посредством языка PHP, или достаточно удобно добавлять файлу HTML статью в раз?
if (txtValue.toUpperCase().indexOf(filter) == 0) {
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Текст задачи: You probably know the "like" system from Facebook and other pagesPeople can "like" blog posts, pictures or other items
Нужно что бы при клике значение translateX изменялось при каждом кликеСейчас событие срабатывает один раз