Когда появляется контекстное меню YUI, полоса прокрутки таблицы tbody неожиданно прокручивается сверху на IE8,IE9

Я вижу странное поведение в IE8 и IE9 с контекстным меню YUI и таблицей с возможностью прокрутки, я очень признателен, если кто-нибудь подскажет мне, как решить следующую проблему:

См. http://jsfiddle.net/nguanon/yL5Sa/ Когда вы делаете прокрутку tbody в IE8 и IE9, прокрутите полосу прокрутки вниз, щелкните правой кнопкой мыши строку, чтобы появилось контекстное меню, обратите внимание, что полоса прокрутки автоматически переходит вверх,

Код был взят из примера YUI с добавлением следующего CSS:

table#dataset thead {
 display: block;
}
table#dataset tbody {
 display: block;
 overflow: auto;
 max-height: 200px;
}
</style>
<!--[if IE]>
<style>
table#dataset tbody {
 position: absolute;
}
</style>
<![endif]-->

В YUI 2.6.0 после прыжка вверх полоса прокрутки возвращается туда, где она была, когда мы щелкали в других областях (чтобы скрыть контекстное меню). В YUI 2.9.0 полоса прокрутки переходит вверх и остается там. Ни один из способов не является хорошим пользовательским опытом, я хотел бы понять, почему это происходит, и можем ли мы это предотвратить.

Отладка показывает, что после выполнения setFocus в контекстном меню полоса прокрутки автоматически переходит. Из реализации в menu.js есть также заметки об этом переходе из области просмотра, но не похоже, что таймер исправил это поведение:

/ * Настройка фокуса с помощью таймера исправляет состояние гонки в Firefox, IE и Opera, где окно просмотра браузера перепрыгивает, когда оно пытается позиционировать и фокусировать меню. */

При поиске решения этой проблемы я также видел похожую ситуацию на https://www.redhat.com/archives/freeipa-devel/2012-July/msg00240.html, в которой текущая позиция полосы прокрутки сохраняется и вернитесь туда, где это было позже. Однако я просто хотел посмотреть, сможем ли мы вообще предотвратить прыжок. Я думаю, что это специфический для YUI вопрос, который уже задавался на сайте YUI, но если кто-либо из пользователей SO сталкивается с кодом YUI 2 и знает ответ, это было бы очень полезно.

1 ответ

К сожалению, YUI2 в конце жизни, поэтому никаких релизов не ожидается. Тем не менее, некоторые проблемы имеют отдельные исправления, и их обычно можно найти в билетах для отчетов об ошибках. Многие из оставшихся проблем были закрыты со статусом "не исправит", но они все еще хранятся и могут быть проверены. Поиск DataTable проблем, связанных с прокруткой предоставляет этот список. Надеюсь, ответ лежит там.

Другие вопросы по тегам