Следующий gif демонстрирует мою проблему:
Вы открываете выпадающее меню, пытаетесь прокрутить, выпадающее меню исчезает (не закрывается, а просто... исчезает). Если вы подождете несколько секунд, он вернется и теперь работает отлично.
Мне удалось увидеть эту проблему только на устройствах iOS. Запись gif была на симуляторе iPhone XS в сафари на iOS 12.
Кто-нибудь сталкивался с такой проблемой и может знать решение? Я попытался увеличить z-индекс, я попытался добавить -webkit-transform: translate3d(0, 0, 0);
Взлом, который продемонстрирован в этой статье, но ни один из которых не принес удачи.
Мне интересно, может кто-нибудь знает лучше меня, что здесь может происходить и как это можно исправить. Настоящим ударом является то, что это, кажется, происходит только в приложении Salesforce 1 на устройствах iOS, поэтому не уверен, насколько легко будет воспроизвести это в общем контексте... Но надеяться, что у кого-то есть идея помешать этому.
Общие браузеры и Android выглядят просто отлично, это только придумали iOS.
Я также не мог заметить ничего странного, что происходило в CSS при проверке раскрывающегося списка, когда он исчезал, а затем, если я изменил в CSS в инструментах разработки, он внезапно отобразился и работал нормально. Это начинает выглядеть как проблема с рендерингом iOS, которая кажется мне неуправляемой, так как я не смог найти какой-либо CSS, который останавливает это...
Наконец-то я нашел что-то вроде такого решения для такого рода проблем.
В каждом из событий 'open' для моих множественных выборок и раскрывающихся виджетов кендо я прикреплял событие 'scroll' к элементу k-list-scroller
scroller раскрывающегося списка /multiselect. Событие прокрутки будет затем увеличивать z-индекс для каждого триггера прокрутки. Это вызвало повторное отображение выпадающего элемента, и оно больше не исчезало.
В выпадающем меню наблюдается небольшой скачок доли секунды, поскольку он быстро исчезает и появляется вновь из-за изменения z-индекса.
Несколько странных замечаний: * Я не смог увеличить z-индекс, а затем вернуть его к исходному z-индексу. По какой-то причине это не вызывало рендеринга... Мне просто нужно было постоянно увеличивать z-индекс.
* Я не мог применить событие прокрутки, а затем удалить. Первоначально я хотел применить событие прокрутки при открытии, при первой прокрутке сделать объект z-index для повторного рендеринга, а затем удалить событие прокрутки. Затем повторно примените событие прокрутки, если раскрывающийся список был открыт снова. Это заставило его работать только в первый раз, даже если событие прокрутки должно было применяться каждый раз, когда раскрывающийся список был открыт. Мне просто нужно было применить событие прокрутки и оставить его (это было во всплывающем редакторе, поэтому элементы все равно позже были уничтожены).