Je n'arrive pas à animer l'origine de perspective sans utiliser all
pour la propriété transition
.Comment faire pour transiter spécifiquement l'origine de la perspective?
Ce code fonctionne dans Safari:
var sceneDiv = document.getElementsByClassName("scene")[0];
sceneDiv.style.perspectiveOrigin = "100% 0%";
sceneDiv.style.transition = "all 1s";
Ce code ne fonctionne pas:
var sceneDiv = document.getElementsByClassName("scene")[0];
sceneDiv.style.perspectiveOrigin = "100% 0%";
sceneDiv.style.transition = "perspective-origin 1s";
function reset()
{
var sceneDiv = document.getElementsByClassName("scene")[0];
sceneDiv.style.perspectiveOrigin = "50% 50%";
sceneDiv.style.transition = "none";
}
function transitionAll()
{
var sceneDiv = document.getElementsByClassName("scene")[0];
sceneDiv.style.perspectiveOrigin = "10% 50%";
/* this works ok, but using "all" affects performance */
sceneDiv.style.transition = "all 1s";
}
function transitionPO()
{
var sceneDiv = document.getElementsByClassName("scene")[0];
sceneDiv.style.perspectiveOrigin = "10% 50%";
/* this doesn't animate the object as expected */
sceneDiv.style.transition = "perspective-origin 1s";
}
.scene
{
width: 400px;
height: 300px;
background: #404040;
-webkit-perspective: 600px;
-moz-perspective: 600px;
-ms-perspective: 600px;
-o-perspective: 600px;
perspective: 600px;
}
.object
{
position: absolute;
margin-left: -200px;
margin-top: -200px;
left: 50%;
top: 50%;
width: 400px;
height: 400px;
background: #ff8000;
-webkit-transform: translateZ(-1200px) rotateX(60deg);
-moz-transform: translateZ(-1200px) rotateX(60deg);
-ms-transform: translateZ(-1200px) rotateX(60deg);
-o-transform: translateZ(-1200px) rotateX(60deg);
transform: translateZ(-1200px) rotateX(60deg);
}
<div class="scene">
<div class="object"></div>
</div>
<button onclick="reset()">reset</button>
<button onclick="transitionAll()">all 1s</button>
<button onclick="transitionPO()">perspective-origin 1s</button>
JSFiddleJe voudrais éviter d'utiliser all
pour améliorer les performances. Qu'est-ce que je fais de mal dans la deuxième série d'instructions?
EDIT
J'ai essayé d'utiliser des extensions de WebKit dans le JavaScript. Même résultat
Les deux œuvres dans mon Chrome.? Quel navigateur utilisez-vous.? – weBBer
Ah, d'accord. J'utilise Safari. Peut-être que j'ai besoin d'utiliser les propriétés de webkit dans le JavaScript. Je vais l'essayer maintenant. – DaiBu
Nah. Même résultat – DaiBu