#javascript #css #firefox #mobile
#javascript #css #firefox #Мобильный
Вопрос:
У меня есть страница с фиксированным расположением div и одной кнопкой (назовем ее «фиксированной кнопкой»). На странице есть несколько других кнопок («кнопки обновления»), которые при нажатии обновляют значение фиксированной кнопки с помощью JavaScript.
При загрузке страницы, если нажата любая из кнопок обновления, значение фиксированной кнопки обновляется без проблем. Однако, если я прокрутю вниз и снова нажму любую из кнопок обновления, фиксированная кнопка иногда исчезнет. Если я прокручиваю после исчезновения фиксированной кнопки, она снова станет видимой.
Похоже, это происходит только в мобильном браузере Firefox (версия 82.1.1). Этого не происходит ни в Chrome / Safari mobile, ни в любых настольных браузерах, которые я проверял (включая Firefox desktop).
Я нашел пару вопросов, которые касались исчезновения всего элемента с фиксированной позицией, но не нашел ничего, что касалось бы исчезновения элементов внутри элемента с фиксированной позицией или чего-либо специфичного для Firefox. В этих вопросах были предложения по обновлению свойств z-index
, transform: translateZ(0)
, и overflow
. Я пробовал, и, похоже, никто не решил проблему.
У кого-нибудь есть обходной путь для этой проблемы?
Ниже приведен фрагмент кода. Вот также ссылка с тем же кодом.
let num = 0;
const buttons = document.getElementsByClassName('updateButtons');
for (let i = 0; i < buttons.length; i ) {
buttons[i].addEventListener('click', function() {
num ;
document.getElementById('fixedButton').value = num;
});
}
input {
margin: 10px;
}
div.fixed {
position: fixed;
background: #fff;
width: 100%;
bottom: 0;
left: 0;
z-index: 1;
}
<div>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click"><br>
<input class="updateButtons" type="button" value="click">
</div>
<div class="fixed">
<hr>
<input id="fixedButton" class="button" type="button" value="0">
</div>
Комментарии:
1. Пожалуйста, версия FF?
2. Привет @RandyCasburn, я использую FF версии 82.1.1
3. Используете ли вы бета-версию на Android? GA для Android — 81.0
4. Пришлось перепроверить. Это не бета-версия. Это последняя версия «Firefox Daylight», выпущенная 20 октября 2020 года.
5. Я проверил еще немного, и, похоже, это проблема во всех браузерах Android FF. Проблема не возникает в Chrome, Safari, Opera или Brave на Android. Это также не проблема ни для настольных компьютеров, ни для браузеров iPhone. Я создал отчет об ошибке в Mozilla.
Ответ №1:
Я это исправил!
Это вызвано скрытием адресной строки при прокрутке в мобильном приложении Firefox.
Я решаю это, предотвращая скрытие адресной строки с добавлением некоторых стилей к родительскому элементу или оболочке в теле:
.wrapper {
position: fixed;
width: 100%;
height: 100%;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}