So i’m trying to put a filter: grayscale on my PNG image but it is not working for some reason.
I cut a part from my image (a mountain, with photoshop, transparent background). and put it above my background image. when i try to transform rotate my mountain it is working but when i try to greyscale it, it is not working.
here is my HTML code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>Document</title>
</head>
<body>
<div id="container">
<div id="vrouw"></div>
<div id="hoofd"></div>
<div id="berg"></div>
</div>
</body>
</html>
here is my CSS code:
#container {
position: relative;
margin: 0 auto;
width: 801px;
height: 1233px;
}
#vrouw {
background-image: url(../img/vrouw2.jpg);
width: 801px;
height: 1233px;
margin: auto;
z-index: 1;
}
#hoofd {
background-image: url(../img/hoofd.png);
width: 164px;
height: 213px;
position: absolute;
top: 200px;
left: 250px;
animation-name: huufd;
animation-duration: 6s;
animation-iteration-count:infinite;
animation-timing-function: linear;
z-index: 3;
}
@keyframes huufd {
0% {
transform: rotate(0deg);
}
10% {
transform: rotate(-10deg);
}
20% {
transform: rotate(-5deg);
}
30% {
transform: rotate(10deg);
}
40% {
transform: rotate(5deg);
}
50% {
transform: rotate(0deg);
}
60% {
transform: translate(5px);
}
70% {
transform: translate(-5px);
}
80% {
transform: translateY(3px);
}
90% {
transform: translateY(-3px);
}
100% {
transform: translateY(0px);
transform: translate(0px);
}
}
#berg {
background-image: url(../img/mountain.png);
width: 801px;
height: 518px;
top: 0px;
left: 0px;
position: absolute;
animation-name: bergk;
animation-iteration-count: infinite;
animation-duration: 3s;
animation-timing-function: linear;
z-index: 2;
}
@keyframes bergk {
0% {
filter: grayscale(10%);
}
10% {
filter: grayscale(30%);
}
20% {
filter: grayscale(20%);
}
30% {
filter: grayscale(40%);
}
40% {
filter: grayscale(60%);
}
50% {
filter: grayscale(90%);
}
60% {
filter: brightness(10%);
}
70% {
filter: brightness(30%);
}
80% {
filter: brightness(20%);
}
90% {
filter: brightness(40%);
}
100% {
filter: brightness(90%);
}
}
2
Answers
I can’t try this now but you can tray this code
add
-webkit-filter: grayscale(100%);filter: grayscale(100%);
in the#container
to make whole thing grayscale. even it works in keyframe. here i have added the demo