Я разработал страницу, которая имеет несколько фиксированных элементов, покрывающих страницу, и использует html5/css3 для создания чистой «маски» над основным документом, что позволяет полосе прокрутки тела по-прежнему прокручивать базовое содержимое.
В Firefox и ie (блех) ScrollTop(0) работает отлично. Однако, как указано в вопросе, не так уж и много в моих любимых браузерах.
Я обратил внимание на то, что нужно вызывать следующее как перед событием ScrollTo, так и после
Код: Выделить всё
$("body,html,document").each(function(){ console.log($(this).scrollTop()); });
И прежде чем вы спросите, я сделал этот консольный вызов для каждого из этих трех элементов, поскольку верхняя часть прокрутки документа должна быть покрыта одним из этих элементов (я бы подумал, что тело, но, как и в случае с ie, вам нужно вызвать html тоже)
Есть идеи?
К вашему сведению, это может быть странность CSS (хотя, как это работает в IE, а не в Chrome, я действительно не могу понять), но я уже пробовал следующее с отрицательными результатами:
Код: Выделить всё
$(window).scrollTop(0);
$(document).scrollTop(0);
$("html").scrollTop(0);
$("body").scrollTop(0);
window.scroll(0,0);
$("body,html,document").scrollTop(0);
$("body,html").scrollTop(0);
У меня нет внешней ссылки, и код слишком длинный (созданный с использованием частичных представлений CI), чтобы опубликовать все это, но чтобы РАЗЪЯСНИТЬ, что я сделал:
- Исправлены верхний, нижний колонтитул и боковая панель, оставляющая содержимое для прокрутки с помощью полосы прокрутки документа.
- на данный момент реализовано очень мало javascript или jquery, почти 0 пользовательских CSS, не считая фиксации положения заранее указанных элементов.
- "контент" создается ajax с помощью функции jQuery .load на основе элементов списка, на которые нажимают в навигаторе боковой панели.
temp Fiddle
больше не работает
Подробнее здесь: https://stackoverflow.com/questions/931 ... ome-safari
Мобильная версия