Подтвердить что ты не робот

Исправлена ​​ошибка рендеринга в webkit на рабочем столе (сафари/хром) с абсолютно позиционируемыми элементами

Если вы посмотрите на видео здесь: http://f.cl.ly/items/2g1a2B3G312D0x0G353W/Render%20Bug%202.mov - вы увидите проблему в действии. В принципе, у меня есть что-то следующее:

<section id="sidenav">
  <h1>TEXT HERE</h1>
  <ul>
    <li>Tab One</li>
    <li>Tab Two</li>
    <li>Tab Three</li>
    <li>Tab Four</li>
  </ul>
  <div id="tab"></div>
</section>

Sidenav абсолютно позиционируется следующим образом:

#sidenav {
  position: absolute;
  top: 200px;
  left: 0px;
  width: 770px;
  padding: 30px 0px 20px;
  background: rgba(255, 255, 255, 0.85);
  -webkit-transition: left 0.75s ease-in-out;
  -webkit-backface-visibility: hidden;
  z-index: 10; /* This fixed it. */
}

#sidenav.hidden {
  left: -768px;
}

У меня есть следующий jQuery:

$("#tab").click(function(){
  $("#sidenav").toggleClass("hidden");
});

Однако элементы внутри раздела не соответствуют анимации. Всякий раз, когда я нажимаю, они либо отстают, либо вообще не двигаются. Тем не менее, они просто призраки, я не могу их нажимать. Когда я вывожу сторону nav nav, они обычно догоняют, но иногда они разбиваются, пока я не надвигаюсь на <li>.

Помните, что это происходит только в Safari/Chrome на рабочем столе. Safari на iPad и Firefox на рабочем столе отлично работает.

Спасибо! Эндрю


ИЗМЕНИТЬ С ИСПОЛЬЗОВАНИЕМ:

Таким образом, очевидно, что добавление z-индекса: 10 (или любой z-индекс) в элемент sidenav устранило проблему. Некоторые люди просили о полном моем css, поэтому я отредактировал сообщение, чтобы сдержать его. Я не уверен, почему именно z-index исправил это, и мне было бы интересно узнать, почему. Я все еще предлагаю свою щедрость тому, кто может это объяснить. Спасибо!

4b9b3361

Ответ 1

Таким образом, очевидно, что добавление z-индекса: 10 (или любой z-индекс) в элемент sidenav устранило проблему. Некоторые люди просили о полном моем css, поэтому я отредактировал сообщение, чтобы сдержать его. Я не уверен, почему именно z-index исправил это, и мне было бы интересно узнать, почему. Я все еще предлагаю свою щедрость тому, кто может это объяснить. Спасибо!

Ответ 2

Я бы предпочел опубликовать это как комментарий, но поскольку я новичок здесь, мой единственный вариант - опубликовать это как ответ. В примере с видео вы разместили наведение над элементами списка, разрешенными для отображения стрелок, но они не исчезли с мыши. Если вы пытаетесь сделать это исключительно с помощью css и не имеете скрытых изображений, вы должны использовать зависание.

Это подробно описано в этом сообщении: Используя только CSS, покажите div на hover над <a>

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

Ответ 3

из разметки, которую вы дали, похоже, что класс "скрытый" также возьмет с собой ваш "навигационный" div (он находится внутри sidenav) - я предполагаю, что это вызовет некоторые изворотливые

Как правило,

  • разметка содержимого
  • стиль вверх
  • добавьте взаимодействия (нажмите события и поведение)
  • THEN добавьте свои заключительные слайды взаимодействия (ослабление и т.д.)

(делая это, вы должны определить, какая часть вызывает проблему в ui)

Ответ 4

Иногда это работает: сделайте родительский position:relative похожим на версию webkit старой, то есть ошибки haslayout.

Ответ 5

Исправлено, удалив стиль z-index из родительского элемента и указав z-index выше 0 на фиксированный элемент. Надеюсь, это сработает с другими.