Усовершенствуя решение window.scrollTo(0,0)
, я инкапсулирую в самоописывающее выражение немедленно вызванной функции и выполняю его при готовности документа и изменении размера окна:
(function minimalUiFix() {
var fix = function () {
window.scrollTo(0,0);
};
$(fix);
$(window).on('resize.minimal-ui-fix', fix);
})();
Преимущество заключается в том, что весь код, связанный с обходом, инкапсулирован вместе, а причина обхода описана в имени функции. Это защищает остальную часть моего прекрасного кода от загрязнения (слишком сильного) странными обходными путями.
Там много чего происходит, но я использую это в этом jsbin.
Этот трюк, кажется, не работает для меня. Посмотрите этот jsbin. То, что у меня здесь, довольно простое: контейнер с фиксированной позицией со скрытым переполнением, которое должно занимать весь экран. Прокрутка не должна быть возможной, однако я все еще получаю непреднамеренное прокручиваемое пространство. Все, что делает этот трюк, — это прокрутка вверх. Это не устраняет таинственное дополнительное пространство, которое вызывает реальную проблему.
Но применение исправления при прокрутке в дополнение к готовности и изменению размера кажется наиболее близким к приличной работе, которую я мог найти.
(function minimalUiFix() {
var fix = function () { window.scrollTo(0,0); };
$(fix);
$(window).on('resize.minimal-ui-fix', fix);
$(window).on('scroll.minimal-ui-fix', fix);
})();
Я думаю, что это лучшее, на что мы можем надеяться, пока Apple не исправит Mobile Safari или не будет обнаружен другой обходной путь.
person
Stoutie
schedule
09.09.2014