Боковая панель Google AMP и z-индекс с фиксированным положением

У меня есть заголовок с position:fixed, и я пытаюсь реализовать компонент amp-sidebar.

AMP создает -amp-fixedLayer, добавляя style="top: calc(0px); pointer-events: initial; z-index: 10000;" для исправления производительности прокрутки в Safari ("[FixedLayer]" "Чтобы улучшить производительность прокрутки в Safari, мы теперь перемещаем элемент на слой с фиксированным позиционированием:" )

Проблема в том, что, поскольку компонент amp-sidebar имеет z-index:9999!important в своих стилях, fixedLayer отображается в верхней части боковой панели.

Я подумал о том, чтобы обернуть amp-sidebar, а затем добавить z-index, который я хочу, но родительский тег для amp-sidebar может быть только 'body'

Любые идеи, как это исправить?

введите здесь описание изображения


person juanchaur    schedule 06.06.2016    source источник
comment
Пожалуйста, включите ссылку на библиотеку и версию, о которой вы говорите (это: ampbyexample.com/components /amp-сайдбар)?   -  person Tony Chiboucas    schedule 06.06.2016
comment
Кроме того, пожалуйста, включите несколько примеров кода, так как я не смог найти никаких ссылок на z-index:9999. Если вы не можете изменить z-index элемента, который должен быть дочерним элементом <body>, то вам, скорее всего, не повезло.   -  person Tony Chiboucas    schedule 06.06.2016
comment
Какова ваша цель? Что вы пытаетесь достичь?   -  person Tony Chiboucas    schedule 06.06.2016
comment
@TonyChiboucas Да, это тот компонент, о котором я говорю. Если вы осмотрите элемент, вы увидите, что их css имеет значение z-index:9999!important. (здесь вы можете найти картинку: postimg.org/image/ccjiladm9). То, что я пытаюсь сделать, это иметь заголовок палки и боковую панель в качестве меню вне холста.   -  person juanchaur    schedule 08.06.2016
comment
@PraveenKumar AMP – это проект ускоренных мобильных страниц от Google ampproject.org.   -  person juanchaur    schedule 08.06.2016
comment
Боковая панель не должна занимать всю высоту окна. Но нам нужно увидеть пример вашего прогресса, прежде чем мы сможем предложить альтернативное решение.   -  person Jay Gray    schedule 10.06.2016
comment
Вы когда-нибудь находили решение этой проблемы? У меня такая же проблема.   -  person James Ives    schedule 10.10.2017
comment
@JamesIves Мне удается перемещать вещи и устранять проблему.   -  person juanchaur    schedule 02.02.2018


Ответы (2)


У меня была такая же проблема, и, немного повозившись, я нашел способ отредактировать Z-индекс моего заголовка.

Amp указывает необходимый z-индекс, но вы можете настроить эти значения. Например:

    header {
        position: fixed;
        z-index: -2000;
        width: 100%;
        background-color: black;
        opacity: 0.7;
        color: white;
    }

Это код CSS моего заголовка, хитрость здесь заключается в использовании отрицательного z-индекса. Amp примет значение по умолчанию, добавит z-индекс из стиля (в данном случае отрицательный) и поместит результат в CSS.

Таким образом, в моем случае вычисленный z-индекс заголовка меньше, чем у боковой панели, и поэтому боковая панель оказывается поверх заголовка.

Надеюсь это поможет.

person Ageo    schedule 12.08.2016
comment
Я проголосовал за это, потому что думал, что это ответ, но кажется, что это скрывает всю страницу, когда страница усилителя загружается через кеш Google. - person Wouter Rutgers; 07.11.2016

Довольно ограниченные возможности

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

примечание: по-видимому, jQuery не вариант.

Используйте поля на боковой панели

amp-sidebar {
    margin-top: 10em;
    margin-left: 5vw;
}

В конце концов, отправьте отчет об ошибке здесь:

https://github.com/ampproject/amp-by-example/issues/new

Сверните свой собственный усилитель

  1. Сообщить об ошибке
  2. Разветвите репозиторий github.
  3. Исправьте ошибку, установив z-индекс боковой панели выше.
  4. Используйте свой пропатченный репозиторий.
  5. Отправьте запрос на вытягивание в репозиторий главного усилителя (исправляет ошибку, о которой вы сообщили).

Это действительно правильный способ справиться с этими сценариями.

person Tony Chiboucas    schedule 07.06.2016
comment
Не используйте размеры em или vw для усилителя, вам, вероятно, не нужен левый запас, протестируйте его как сумасшедший, прежде чем запускать его. - person Tony Chiboucas; 08.06.2016
comment
Невозможно использовать jQuery, потому что это ограничение AMP. - person juanchaur; 09.06.2016
comment
Боковая панель не должна занимать всю высоту окна. - person Jay Gray; 10.06.2016
comment
@JayGray С точки зрения дизайна я согласен. Тем не менее, определение и цель этих боковых панелей и усилителя заключается в том, чтобы боковая панель казалась частью родной ОС смартфона для целей навигации. Эффект, который был бы разрушен, если бы боковая панель не была полной высоты. material.google.com/layout/structure.html#structure-side- навигация - person Tony Chiboucas; 10.06.2016