Transform Not Working on iOS

Transform not Working on IOS

Found the problem, it was a silly one. I didn't use -webkit which is supported for iOS. Below is the solved JS Fiddle if anyone needs it ..

.circle-container {
position: relative;
width: 15em;
height: 14em;
padding: 2.8em;
/*2.8em = 2em*1.4 (2em = half the width of a link with img, 1.4 = sqrt(2))*/
border: dashed 0px;
border-radius: 50%;

}
.circle-container > a {
display: block;
text-decoration: none;
position: absolute;
top: 50%; left: 50%;
width: 4em; height: 4em;
margin: -2em;

text-align: center;
}

.circle-container div {
display: block;
text-decoration: none;
position: absolute;
top: 50%; left: 50%;
width: 4em; height: 4em;
margin: -2em;
text-align: center;
}
.circle-container img { display: block; width: 100%; height:320px; position:absolute; margin-left:-25px; margin-top:15px;}
.deg0 {
transform: translate(5.2em);
-webkit-transform: translate(5.2em);
-ms-transform: translate(5.2em);
} /* 12em = half the width of the wrapper */
.deg45 {
transform: rotate(45deg) translate(5.4em) rotate(-45deg);
-webkit-transform: rotate(45deg) translate(5.4em) rotate(-45deg);
-ms-transform: rotate(45deg) translate(5.4em) rotate(-45deg);
}
.deg90 {
transform: rotate(-90deg) translate(5em) rotate(90deg);
-webkit-transform: rotate(-90deg) translate(5em) rotate(90deg);
-ms-transform: rotate(-90deg) translate(5em) rotate(90deg);
}
.deg110 {
transform: rotate(45deg) translate(5em) rotate(-45deg);
-webkit-transform: rotate(45deg) translate(5em) rotate(-45deg);
-ms-transform: rotate(45deg) translate(5em) rotate(-45deg);
}
.deg135 {
transform: rotate(135deg) translate(5em) rotate(-135deg);
-webkit-transform: rotate(135deg) translate(5em) rotate(-135deg);
-ms-transform: rotate(135deg) translate(5em) rotate(-135deg);
}
.deg180 {
transform: translate(-5em);
-webkit-transform: translate(-5em);
-ms-transform: translate(-5em);
}
.deg225 {
transform: rotate(225deg) translate(5em) rotate(-225deg);
-webkit-transform: rotate(225deg) translate(5em) rotate(-225deg);
-ms-transform: rotate(225deg) translate(5em) rotate(-225deg);
}
.deg315 {
transform: rotate(315deg) translate(5em) rotate(-315deg);
-webkit-transform: rotate(315deg) translate(5em) rotate(-315deg);
-ms-transform: rotate(315deg) translate(5em) rotate(-315deg);
}

IOS Safari transition transform not working

Old versions of iOS Safari support only vendor-prefixed properties and values for transition and transform, so you should use -webkit-transition: -webkit-transform instead -webkit-transition: transform:

JSFiddle

$('button').on('click', function() {

$('.mydiv').toggleClass('added-class');

});
.mydiv {

display: inline-block;

width: 100px;

height: 50px;

background-color: red;

-webkit-transform: translateY(0);

-moz-transform: translateY(0);

-ms-transform: translateY(0);

-o-transform: translateY(0);

transform: translateY(0);

-webkit-transition: -webkit-transform 0.6s ease-out;

-moz-transition: transform 0.6s ease-out;

-o-transition: transform 0.6s ease-out;

transition: transform 0.6s ease-out;

}

.added-class {

-webkit-transform: translateY(100%);

-moz-transform: translateY(100%);

-ms-transform: translateY(100%);

-o-transform: translateY(100%);

transform: translateY(100%);

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="mydiv"></div>

<button type="button">Toggle class</button>

transform: translate animation not functioning on iOS 15.1 devices

We worked it out in class tutorial today.

The answer was because of how I was zooming into the picture.
I was using width, and increasing from 100% to 3000%.

I should have been using scale within the transform before the translate method.

I will leave in the -webkit versions for isurance.

*{
background-color:orange;
}
#divNV2 {
width: 680px;
height: 300px;
display: flex;
grid-area: nv2;
margin-left: auto;
margin-right: auto;
position: relative;
overflow: hidden;
margin-bottom: 2em;
border: 2px black solid;
}

#novellasBanner {
z-index: index 100;;
width: 100%;
background: pink;
transform-origin: center;
-webkit-transform-origin: center;
animation-name: dinoAttack;
animation-timing-function: cubic-bezier(.59,.15,1,-0.15);
animation-iteration-count: infinite;
animation-duration: 8s;
}
@keyframes dinoAttack {
0% {
left: 0px;
transform: scale(1.0) translate3D(0, 0, 0);
-webkit-transform: scale(1.0) translate3D(0, 0, 0);
-moz-transform: scale(1.0) translate3D(0, 0, 0);
}
90% {
left: 0px;
transform: scale(5.0) translate3D(-30%, -4%, 0);
-webkit-transform: scale(5.0) translate3D(-30%, -4%, 0);
-moz-transform: scale(5.0) translate3D(-30%, -4%, 0);
}
100% {
left: 0px;
transform: scale(5.0) translate3D(-30%, 25%, 0);
-webkit-transform: scale(5.0) translate3D(-30%, 25%, 0);
-moz-transform: scale(5.0) translate3D(-30%, 25%, 0);
}
}
<div id="divNV2">
<a href="https://scottsigler.com/library/#post-1154">
<img id="novellasBanner" alt="Tie-In Novellas" src="https://kurt-eh.github.io/images/RID-EB-680-680x300.jpg">
</a>
</div>

CSS Transform only not working on IOS

While you shouldn't have to, you might want to try translate3d(x,y,z) instead of translateX(x). For example:

-webkit-transform: translate3d(-100%,0,0);

Reasoning is taken from this GitHub issue

I just spoke to one of the engineers at Apple regarding this. He confirmed that both 2d and 3d transformations are hardware accelerated when using CSS3 transitions and keyframe animations. We shouldn't have to change anything.

He did clarify that when NOT using transitions and keyframes to animate, that 2d transformed elements are not accelerated to save memory. But, in our case, our transitions always use keyframe animation.



Related Topics



Leave a reply



Submit