SVG animation using stroke-dashoffset doesn't display in IE - css

I have the following SVG animation that works perfectly fine in Chrome, Safari, Firefox but the line drawing doesn't display in IE.
I tried just the line drawing without the fade or moving away from the css shorthands but no change.
Any help or suggestion would be appreciated.
http://jsfiddle.net/zpL4okys/
.path {
stroke:#fff;
fill:transparent;
stroke-width:1;
opacity: 0;
-webkit-animation: dash 1.5s linear forwards, fadeout 1.9s linear;
animation: dash 1.5s linear forwards, fadeout 1.9s linear;
}
.drawing {
position: relative;
}
.illustration, .line-drawing {
position: absolute;
top:20%;
left:0;
right: 0;
margin: auto;
}
.illustration {
opacity: 1;
animation: fadein 2s ease-in;
}
#keyframes dash {
to {
stroke-dashoffset: 0;
}
}
#keyframes fadeout {
0% {
opacity:1;
}
99% {
opacity: 1;
}
100% {
opacity: 0;
}
}
#keyframes fadein {
0% {
opacity: 0;
}
90% {
opacity: 0;
}
100% {
opacity: 1;
}
}

Related

Css swapping images and making a blink effect

Im trying to create a blink effect by using 2 images.
I have 2 photos with a person, one with eyes opened and another with eyes closed. How can i make a blinking effect?
I was hoping to make it as real as possible, trying to blink quickly and then keep the eyes opened for 3-5sec and then blink in 1sec.
Found one example that is almost what i need but not quite yet
Would really appreciate some help
.imageswap {
position:relative;
height:281px;
width:450px;
margin:0 auto;
}
.imageswap img {
position:absolute;
left:0;
top: 0;
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
object-fit: contain;
width: 100%;
height: 100%;
}
#-webkit-keyframes blink {
0% {
opacity: 1;
}
49% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 0;
}
}
#-moz-keyframes blink {
0% {
opacity: 1;
}
49% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 0;
}
}
#-o-keyframes blink {
0% {
opacity: 1;
}
49% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 0;
}
}
img.openeyeimg {
-webkit-animation: blink 5s;
-webkit-animation-iteration-count: infinite;
-moz-animation: blink 5s;
-moz-animation-iteration-count: infinite;
-o-animation: blink 5s;
-o-animation-iteration-count: infinite;
}
<div class="imageswap">
<!-- NOTE: both images should be have same dimension, look&feel -->
<img src="https://i.stack.imgur.com/yqWK7.jpg" class="closeeyeimg">
<img src="https://i.stack.imgur.com/NgW24.jpg" class="openeyeimg">
</div>

Stop CSS3 opacity animation before 1

I'm trying to animate a certain div opacity from 0 to 0.6, but it seems that at the end of the animation it jumps to 1.
What am I missing?
#test {
width: 200px;
height: 200px;
background-color: #900;
animation: fadein 2s;
-moz-animation: fadein 2s;
-webkit-animation: fadein 2s;
-o-animation: fadein 2s;
}
#keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-moz-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-webkit-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-o-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
<div id="test"></div>
You need to specify animation-fill-mode: forwards if you want the element's CSS to remain at the last step of the animation.
https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode
Forwards: The target will retain the computed values set by the last keyframe encountered during execution.
#test {
width: 200px;
height: 200px;
background-color: #900;
animation: fadein 2s forwards;
-moz-animation: fadein 2s forwards;
-webkit-animation: fadein 2s forwards;
-o-animation: fadein 2s forwards;
}
#keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-moz-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-webkit-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
#-o-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 0.5;
}
}
<div id="test"></div>
Have you tried setting the opacity on the element you are animating to the final value?
I believe the rules in a CSS animation stop applying when the animation finishes. I would guess it is animating from 0 to 0.5 and then reverting to 1, 1 being the default opacity since you don't have an opacity specified on the element itself.
I hope this helps!

Animating Pseudo Class Before Parent

I'm trying to animate a pseudo class before the parent class.
For example,
.parent {
opacity: 0;
animation: fadeIn 1s linear 2s;
animation-fill-mode: forwards;
&:before {
content: 'something';
position: absolute;
left: 50%;
opacity: 0;
visibility: hidden;
animation: fadeInOut 2s linear;
animation-fill-mode: forwards;
}
#keyframes fadeInOut {
0% {
opacity: 0;
visibility: visible;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
visibility: hidden;
}
}
#keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
So in my mind, this should fade in and out something then parent gets loaded.. however, that's not the case... I tried taking out visibility but still fails... what am I doing wrong?

fade in-out elements sequentially (on after another) css in loop

I want to fade in-out elements sequentially (one after another) with css only, ie show one, hide it, show next one, hide it and so on, then repeat. At the moment I have this css it works fine, but I will have 20 elements and it seems like a lot of code for something so simple. Any suggestions on how to improve this with less code?
.map-presence__stat--stat1 {
animation: fadeInOut1 6s ease-in-out;
animation-iteration-count: infinite;
}
.map-presence__stat--stat2 {
animation: fadeInOut2 6s ease-in-out;
animation-iteration-count: infinite;
}
.map-presence__stat--stat3 {
animation: fadeInOut3 6s ease-in-out;
animation-iteration-count: infinite;
}
#-webkit-keyframes fadeInOut1 {
0%{
opacity: 1;
}
32%{
opacity: 1.0;
}
33%{
opacity: 0;
}
99%{
opacity: 0;
}
}
#-webkit-keyframes fadeInOut2 {
0%{
opacity: 0;
}
32%{
opacity: 0;
}
33%{
opacity: 1;
}
66%{
opacity: 1;
}
67%{
opacity: 0;
}
99%{
opacity: 0;
}
}
#-webkit-keyframes fadeInOut3 {
0%{
opacity: 0;
}
32%{
opacity: 0;
}
33%{
opacity: 0;
}
66%{
opacity: 0;
}
67%{
opacity: 1;
}
99%{
opacity: 1;
}
}

Simple (?) CSS Animation of Opacity Property

Ok, I don't get this. I've done CSS3 animations before, but for some reason simply animating the opacity isn't working for me today. Am I missing something silly?
CSS:
#-webkit-keyframes fadein {
from: { opacity: 0; }
to: { opacity: 1; }
}
#-moz-keyframes fadein {
from: { opacity: 0; }
to: { opacity: 1; }
}
#keyframes fadein {
from: { opacity: 0; }
to: { opacity: 1; }
}
#foo {
background-color: green;
color: white;
-webkit-animation: fadein 2s ease-in alternate infinite;
-moz-animation: fadein 2s ease-in alternate infinite;
animation: fadein 2s ease-in alternate infinite;
}
HTML:
<div id="foo">This is Foo!</div>
I've also posted it as a fiddle:
http://jsfiddle.net/NRutman/Lcyvy/
Any help would be appreciated.
Thanks,
-Nate
You don't need colons after from and to:
#keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
http://jsfiddle.net/Lcyvy/6/
Change
#keyframes fadein {
from: { opacity: 0; }
to: { opacity: 1; }
}
to
#keyframes fadein {
0% { opacity: 0; }
100% { opacity: 1; }
}
DEMO

Resources