Как уже упоминали другие, я бы проанализировал ваши условные выражения, чтобы увидеть, есть ли способ передать его другим методам для повышения читабельности.
Другой вариант - многослойное дерево, если вы можете придумать способ разбить список: например, 35 элементов могут быть 7 группами по 5 элементов в каждой.
35 не является длинным списком, если вы сортируете его в алфавитном порядке при добавлении в список, чтобы пользователь мог ввести первые несколько символов и приблизиться к желаемому выбору. Благодаря этой функции даже пара сотен записей не кажется слишком большой для выбора.
Если список становится слишком длинным, сделайте кнопку, открывающую полностью доступный для поиска и сортировки список значений.
На самом деле это действительно сложный вызов, и, не зная продукта или технической грамотности людей, которые собираются использовать продукт, невозможно дать твердые ответы (проверяли ли вы идеи с пользователями (или даже прокси-пользователей)?).
Вы можете разбить информацию на связанные сегменты:
Описание
первый элемент списка
второй элемент списка
Описание
третий элемент списка
list element four
Единственным недостатком этого является то, что вам, вероятно, придется разобраться в том, что произойдет, если кто-то выберет один из описательных элементов.
Создайте сетку флажков / переключателей. Тогда вы сможете воспользоваться горизонтальным пространством. Также очень поможет сортировка опций по алфавиту.
Думаю, я бы попытался держаться подальше от раскрывающегося списка, не из-за количества элементов, а из-за того, что происходит, когда элемент выбран: не очень часто выбор элемента в раскрывающемся списке немедленно выполняет команду (с точки зрения пользователя). Вместо этого я бы рассмотрел возможность использования одного элемента управления, который обычно используется для представления команд.
Первое, что приходит мне в голову, - использовать кнопку вместе со всплывающим меню. При нажатии на кнопку меню отображается прямо под кнопкой. Затем вы также можете использовать каскадные возможности меню для группировки элементов в логические группы. Вы также представите элементы таким образом, чтобы заставить пользователя думать «команда», а не «выбор».
Два списка, один из которых является категорией, а другой список заменяет элементы этой категории?
Если вы используете раскрывающийся список с большим количеством элементов, я бы посоветовал избегать практики навязывания произвольно малого «максимального количества элементов, отображаемых за раз» на развернутый список (включая вертикальную полосу прокрутки в раскрывающемся раскрывающемся списке для доступа к оставшимся элементам), если у вас нет для этого веской причины.
Меня не раз раздражало какое-то приложение, которое показало мне раскрывающийся список с умеренно большим количеством элементов (скажем, 20 или 30), но ограниченное количество отображаемых элементов небольшим числом (скажем, 8). У меня много свободного места на экране, доступного в окне приложения в целом, и даже больше места доступно на всем экране; так зачем заставлять меня прокручивать список, чтобы увидеть все доступные варианты,
если у вас действительно огромное количество элементов - поле может быть заполнено с помощью ajax на основе поиска, выполненного по набранному слову (ам) - как это делает поиск Google это и многие другие. возможно, для этого есть готовое решение javascript в какой-нибудь популярной библиотеке, которое каждый может добавить к этому ответу?
30 элементов - это совсем немного. Возьмите выбор страны с ~ 150 странами. Выпадающий список используется почти везде (однако этот список никогда не меняется ... это может быть частью рассмотрения)
, что касается использования списка, отсортированного по алфавиту - подсказка, помещенная прямо рядом с полем, может сделать это более удобно - посетители могут вводить некоторые символы для быстрой навигации по списку - как предложил Рон.
Я предлагаю текстовое поле с автозаполнением "поиск по мере ввода".