Ich habe ein div mit einem Hintergrundbild darauf. Wenn es eine einfache Transformationsskalierungs-Animation hat, beginnt es in Google Chrome und Opera zu flackern. Hier ist ein einfaches exmple:Wenn das Hintergrundbild skaliert wird, flackert es in Chrome
http://codepen.io/anon/pen/bWpNYq
CSS:
body {
height: 100vh;
overflow: hidden
}
div {
width: 100%;
height: 100%;
background-color: #f00;
background-position: 50% 50%;
background-image: url(".....jpg");
background-size: cover;
}
Script:
TweenLite.set('div', {
backfaceVisibility: 'hidden',
perspective: 1000
});
TweenLite.fromTo('div', 10, {
scale: 1.1
}, {
scale: 1
});
Wenn das Bild ein einfaches img Element ist, das gleiche Maßstab Animation funktioniert gut. Der Übergang glatt ist:
http://codepen.io/anon/pen/pPyvdp
Die Beispiele verwenden GASP für Animationen. Ich brauche eine Lösung, die GSAP verwendet, um das Div mit besserem Ergebnis zu skalieren.
Haben Sie eine Idee, wie Sie es mit Hintergrundbild glatt machen?
Ich möchte mit der GSAP-Animations-Engine bleiben. –
Dies funktioniert tatsächlich in Kombination mit GSAP. Die '1s' sind Overkill, aber das Hinzufügen von' transition: transformiere 0,1s linear; 'in deiner ersten Demo macht es für mich glatt. Das zugrundeliegende Problem ist wahrscheinlich, dass die 'background-size: cover' es so macht, dass das Bild etwas anders skaliert wird, abhängig von der skalierten Größe des' div'. Durch Hinzufügen des Übergangs wird dies geglättet. –