В Safari при наведении курсора на элементы SVG прокручиваемый элемент сбрасывает свое положение прокрутки? - PullRequest
3 голосов
/ 20 марта 2019

У меня есть веб-сайт , который демонстрирует странное поведение, которое я не понимаю.Я не могу сказать, столкнулся ли я с ошибкой или что я мог делать неправильно.

На странице есть два элемента, nav и main, для каждого из которых установлен overflow-y: scroll.Это делается для того, чтобы их можно было прокручивать независимо друг от друга.Если прокрутить элемент main, а затем навести курсор на кнопки нумерации страниц внизу, элемент main вернется наверх (потеряет позицию прокрутки).Это также происходит, если навести курсор мыши на символ Octocat / GitHub в навигационной панели справа.

Общая нить здесь заключается в том, что кнопки нумерации страниц и символ GitHub справа имеют элементы svg.Если я избавлюсь от элемента svg, ошибка не произойдет.Также, если я удаляю overflow-y: scroll из элемента main, ошибка не возникает.

Я также заметил, что проблема может быть как-то связана с установкой height: 100% в теге <html>.Когда его удаляют, проблема больше не возникает, но, к сожалению, ее нельзя удалить, иначе макет полной ширины / высоты не будет работать правильно.

Может кто-нибудь сказать мне, почему это происходит, если это ошибка вSafari и / или как это исправить?Спасибо!

Ответы [ 3 ]

1 голос
/ 20 марта 2019

Вы можете исправить это, добавив следующее к body, где определены ваши правила сетки. К сожалению, я понятия не имею, почему это решает проблему.

body {
  …
  grid-auto-rows: 1fr;
}
0 голосов
/ 08 мая 2019

Это ошибка, связанная с версией safari 12.1, которая исправлена ​​в Safari Technological Preview. https://bugs.webkit.org/show_bug.cgi?id=197189

Однако как обходной путь в то же время. Ты можешь попробовать overflow-x: скрытый, overflow-y: прокрутка, высота от 50 до 95vh для конкретного контейнера в зависимости от окружающих элементов. Это будет иметь минимальный сафари прыжок при наведении и, возможно, пустое место внизу.

0 голосов
/ 10 апреля 2019

Потратив на это много часов, я смог выяснить, как это исправить, - переключиться с CSS-сетки на flexbox. ??♂️

Это diff, который исправил , если вам интересно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...