Я использую animate.css для анимации текста на баннере.Я использую видимость нет / дисплей, чтобы отобразить / скрыть различные элементы и анимировать их.Я хотел бы зациклить функцию AnimateText, когда анимированные функции закончились.Я пытался запустить бесконечный цикл разгрузки, но это не сработало.Я не знаю, как создать цикл и дать ему знать, что последняя анимация завершена, чтобы начать новую итерацию.
function display(element, visibility, callback) {
document.getElementById(element).style.display = visibility;
};
function animateCSS(element, animationName, Delay, callback) {
const node = document.querySelector(element)
node.classList.add('animated', animationName, Delay)
function handleAnimationEnd() {
node.classList.remove('animated', animationName, Delay)
node.removeEventListener('animationend', handleAnimationEnd)
if (typeof callback === 'function') callback()
}
node.addEventListener('animationend', handleAnimationEnd)
};
window.onload =
function AnimateText() {
animateCSS('.c1', 'zoomInUp', 'delay-1s',
function() {
animateCSS('.c1', 'zoomOutUp', 'delay-3s',
function() {
display("el1", "none", display("el2", "block",
animateCSS('.hhh', 'zoomInUp', 'delay-1s',
function() {
animateCSS('.hhh', 'zoomOutUp', 'delay-3s', function() {
display("el2", "none")
})
}
)))
})
})
};
/* Reset styles */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* custom styles */
@font-face {
font-family: 'Verdana';
}
html {
margin: 0px;
padding: 0px;
width: 600px;
height: 300px;
font-family: 'Verdana';
}
body {
font-family: 'Verdana';
margin: 0px;
}
/* a link */
a {
display: block;
position: relative;
overflow: hidden;
color: #000;
text-decoration: none;
}
#area1 {
padding: 10px;
height: 280px;
background-color: white;
}
#box1 {
height: 150px;
padding: 10px;
background-color: white;
text-align: center;
vertical-align: center;
}
#box2 {
height: 90px;
padding: 10px;
text-align: center;
}
.but {
float: right;
background-color: #2d2d2d;
border: none;
color: white;
margin: 36px 20px 0px 0px;
padding: 10px 10px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
border-radius: 4px;
}
.but:hover {
background-color: #d2d2d2;
color: white;
box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.24), 0 8.5px 25px 0 rgba(0, 0, 0, 0.19);
}
h1 {
font-size: 5em;
vertical-align: center;
}
#el1,
#el2 {
padding-top: 5px;
}
#el3 {
float: left;
width: 50%;
}
.h1z {
color: #000;
}
.h1w {
color: #fff;
}
.h3w {
color: #fff;
font-size: 1.5em;
}
.logo {
margin: 15px 0px 0px 25px;
height: 80px;
float: left;
}
<link href="https://raw.githubusercontent.com/daneden/animate.css/master/animate.css" rel="stylesheet" />
<!doctype html>
<html>
<head>
<title>banner_300x600</title>
<meta charset="utf-8">
<meta name="ad.size" content="width=300,height=600">
</head>
<body>
<a href="https://www.google.nl/" target="_top">
<div id="area1">
<div id="box1">
<div id="el1" class="c1" style="display: block;">
<h1>text1 <br/><span class="h1w">text 2</span></h1>
</div>
<div id="el2" style="display: none;">
<h1 class="hhh">text 3<br/><span class="h1w">text4</span></h1>
</div>
<div id="el3" style="display: none;">
<img class="logo" src="https://www.google.nl/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" alt="Logo Google">
</div>
</div>
<div id="box2">
<div class="but">
<p class="h3w">1</p>
</div>
</div>
</div>
</a>
</body>
</html>
Анимация работает только один раз.Ему нужно подождать 3 секунды после его завершения, а затем начать все сначала.