translate3d имеет несовместимое поведение в Safari против Chrome/Firefox при использовании перспективы

При использовании translate3d для перемещения объекта с абсолютным позиционированием, а также при использовании перспективы для изменения представления translate3d Safari не работает так же, как другие браузеры.

Изображение с визуальным представлением вопроса

Если объект не позиционируется абсолютно, проблема не возникает, и Safari функционирует так же, как и другие браузеры.

Кодовый пример для примера просмотра в Safari против Chrome

редактировать: я забыл упомянуть, что проблема Safari также относится к контенту внутри объекта с применением translate3d. Содержимое внутри, например ссылки или кнопки, нельзя щелкнуть в месте визуального представления, вместо этого оно находится там, где визуальное "должно" быть. Я добавил кнопку для кодовой булавки и код для демонстрации.

jQuery(document).ready(function($) {
  $(".clickme").click(function() {
    $("body").toggleClass("toggle");
  });
});
body {
  margin: 0;
}
.outer-box {
  perspective: 900px;
}
.box {
  padding: 100px 15%;
  background: #000;
  color: #fff;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 100vh;
  overflow: scroll;
  box-sizing: border-box;
  text-align: center;
}
.toggle .box {
  transform: translate3d(0px, 100px, -200px);
}
.clickme {
  cursor: pointer;
  float: right;
  position: relative;
  z-index: 1;
  background: pink;
  padding: 20px;
}

button {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clickme">X</div>
<div class="outer-box">
  <div class="box">Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nullam quis risus eget urna mollis ornare vel eu leo.<br><button>Click Me!</button></div>
</div>

0 ответов

Другие вопросы по тегам