Я столкнулся с очень интересной ошибкой в старом Rails-проекте с участием Turbolinks.Вот описание ошибки:
Всякий раз, когда пользователь нажимает на значок навигации гамбургера, боковая навигация анимируется, чтобы открыть список ссылок навигации, которые нужно щелкнуть.При нажатии на этот значок jQuery добавит класс к элементу html
на странице.Всякий раз, когда пользователь нажимает на одну из этих навигационных ссылок, Turbolinks делает то, что делает Turbolinks: делает XHR-запрос к серверу для получения HTML-кода, необходимого для страницы, и заменяет тег body страницы для тега body в ответе.Однако, когда Turbolinks нарисовал страницу с новым тегом body с сервера, посетитель не смог прокрутить страницу вниз - страница выглядела замороженной.
Когда я удалил jQuery, добавивший класс CSS в *Элемент 1006 * при нажатии на навигацию, все анимации напоминают одинаковые.Затем я щелкнул по одной из ссылок, Turbolinks запустился, и теперь страница внезапно разморозилась - я мог прокручивать страницу вверх и вниз.
Почему первоначальный автор применил CSS к html
во время события клика по гамбургеру нав, я не знаю.Однако, когда я удалил это поведение jQuery, добавившее класс CSS к элементу html
, страница, которую рисовал Turbolinks, была прокручиваемой.
Кто-нибудь знает, почему добавление класса CSS к элементу html
сломало страницу, которую Turbolinks извлек и нарисовал?И кто-нибудь знает, почему нарисованная страница Turbolinks была прокручиваемой, когда я удалил jQuery, добавивший класс CSS к элементу html
?
РЕДАКТИРОВАТЬ:
CSSкласс, который jQuery добавил к элементу html
, был следующим:
.-page-overflow-hidden {
overflow: hidden;
}