Background
I have a CSS3 class that makes an icon swing, like an alarm:
@-webkit-keyframes swing {
15% {
-webkit-transform: translateX(5px);
transform: translateX(5px);
}
30% {
-webkit-transform: translateX(-5px);
transform: translateX(-5px);
}
50% {
-webkit-transform: translateX(3px);
transform: translateX(3px);
}
65% {
-webkit-transform: translateX(-3px);
transform: translateX(-3px);
}
80% {
-webkit-transform: translateX(2px);
transform: translateX(2px);
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes swing {
15% {
-webkit-transform: translateX(5px);
transform: translateX(5px);
}
30% {
-webkit-transform: translateX(-5px);
transform: translateX(-5px);
}
50% {
-webkit-transform: translateX(3px);
transform: translateX(3px);
}
65% {
-webkit-transform: translateX(-3px);
transform: translateX(-3px);
}
80% {
-webkit-transform: translateX(2px);
transform: translateX(2px);
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
.swing {
-webkit-animation: swing 1s ease infinite;
-moz-animation: swing 1s ease infinite;
animation: swing 1s ease infinite;
}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Icon swing</title>
<meta name="css3 code for icon swinging" content="Icon Swing">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>
<i class="material-icons swing">alarm</i>
</body>
</html>
Problem
The animation works fine, and it repeats every second. However, users complain, so I would like to make the animation run every X seconds, where X is a number chosen by the user.
Research
To achieve this I made a search in Stackoverflow, which fixed a similar issue by making the animation last 30 seconds, but by running it in the first 5% seconds.
This is fine if you have a static limit (like I want to run an animation every Y seconds, where Y never changes) but it lacks customization.
Questions
- Is it possible to make this animation run every X seconds, where X can change?
- If not, how do I change this animation to run during the first 5% seconds as well?