html - Crossfade Keyframe Percentages Algorithm -
i found on website, i'm not sure understand correctly...everytime try doesn't work out. can elaborate on me?
i have 4 images i'm trying rotate every 12 seconds, 1 second animation.
he proposes following algorithm determine percentages , timings:
for "n" images must define: a=presentation time 1 image b=duration cross fading total animation-duration of course t=(a+b)*n
animation-delay = t/n or = a+b
percentage keyframes:
- 0%
- a/t*100%
- (a+b)/t*100% = 1/n*100%
- 100%-(b/t*100%)
- 100%
you can find here: http://css3.bradshawenterprises.com/cfimg/
thank much.
@keyframes imageanimation { 0% { opacity: 1; animation-timing-function: ease; } 23% { opacity: 0; animation-timing-function: ease; } 25% { opacity: 0; animation-timing-function: ease; } 33% { opacity: 0; animation-timing-function: ease; } 100% { opacity: 1 } }
here fiddle: https://jsfiddle.net/joelssk/1jlk06as/4/
there nothing magical percentages. if have 4 images need rotate, each of them showing 11 seconds before 1-second transition period, how look?
in below sketch, x
visible, _
invisible , <
, >
fade in , fade out, respectively.
time 0 12 24 36 img1 xxxxxxxxxxx>___________________________________< img2 ___________<xxxxxxxxxxx>________________________ img3 _______________________<xxxxxxxxxxx>____________ img4 ___________________________________<xxxxxxxxxxx>
if @ first image, key frames, i.e., when has happen? 0
11
image visible. 11
12
it's fading out. 12
47
it's invisible. , 47
48
it's fading in.
your total time 48
seconds, these times translate (on scale 0
100
):
[0, 23]
: visible[23, 25]
: fade out[25, 98]
: invisible[98, 100]
: fade in
or, in terms of keyframes:
@keyframes imageanimation { 0% { opacity: 1; animation-timing-function: ease; } 23% { opacity: 1; animation-timing-function: ease; } 25% { opacity: 0; animation-timing-function: ease; } 98% { opacity: 0; animation-timing-function: ease; } 100% { opacity: 1 } }
now, quite clear images follow same pattern, start @ different times. can see diagram, delays should 0
, 12
, 24
, , 36
seconds.
Comments
Post a Comment