Я не нашел более подходящей темы для моей проблемы, но связанной с упомянутой выше проблемой. Так что кому-то может быть полезно.
В двух словах: у меня есть какой-то контейнер (всплывающее окно), какой-то элемент внутри. Появление происходит следующим образом: фон контейнера затемняется за счет непрозрачности, а элемент внутри увеличивается (как бы приближается к нам сзади). Все отлично работает везде, но не в Safari (Mac/Win/iPhone). Safari «сначала» показывает мой контейнер, но он как-то странно мигает (появляется крошечная короткая вспышка).
Только добавление -webkit-transform: translateZ(0); (в контейнер!!!) помогло.
.container {
-webkit-transform: translateZ(0); /* <-- this */
}
.container section {
-webkit-transform: translateZ(0) scale(.92); /* <-- and I added translate here as well */
-webkit-transition: -webkit-transform .4s, opacity .3s;
opacity:0;
}
.container.active section {
-webkit-transform:translateZ(0) scale(1);
-webkit-transition: -webkit-transform .3s, opacity .3s;
opacity:1;
}
Но если говорить о переходах, то была еще и следующая часть кода:
.container {
...
top:-5000px;
left:-5000px;
-webkit-transition: opacity .5s, top 0s .5s, left 0s 5s, width 0s 5s, height 0s 5s;
}
.container.active {
-webkit-transition: opacity .5s;
top:0;
left:0;
width:100%;
height:100%;
}
учитывая, что я хочу показать/скрыть всплывающее окно, используя только переключение css (а также сделать так, чтобы оно красиво исчезло, а не просто «отображать: нет»).
Итак, каким-то образом при появлении Safari (очевидно) наследовал свойства перехода, помимо «непрозрачности», даже несмотря на то, что я перегрузил их только -webkit-transition: opacity .5s;
поэтому добавление следующего решило проблему:
.container {
...
-webkit-transition: opacity .5s, top 0s 0s, left 0s 0s, width 0s 0s, height 0s 0s;
}
person
Agat
schedule
16.03.2013