Я пишу программу, которая берет json-файл из URL и после этого отображает всю информацию в div. Проблема в том, что я хочу сделать анимацию, которая отображает только одну «новость» за раз.
Я видел всю информацию до того, как написал код для fadeIn
и fadeOut
, я очень не знаю, как решить эту проблему.
<head>
<style>#mypanel {
position: relative;
width: 100%;
height: 1080px;
}
#mypanel > div {
position: absolute;
}
div .title {
color: #fff;
font-size: 18pt;
font-weight: bold;
text-align: center;
}
div .description {
color: #fff;
font-size: 14pt;
}
</style>
</head>
<script>
$(document).ready(function(){
var text = [];
var previous = null;
var current = null;
setInterval(function() {
$.getJSON("mySite.com", function(news){
current = JSON.stringify(news);
if (previous && current && previous !== current) {
location.reload();
}
previous = current;
for (var i = 0, len = news.length; i < len; i++) {
if (news[i].imgFilePath == null && news[i].imgPosition == null){
text[i] = `
<div class="news">
<div></div>
<div class="title">${news[i].title}</div>
<div class="description">${news[i].description}</div>
</div>
`
}
else {
if(news[i].imgPosition == 't'){
text[i] = `
<div class="news">
<div><img class="top" src="img/${news[i].imgFilePath.split("/").pop()}"/></div>
<div class="title">${news[i].title}</div>
<div class="description">${news[i].description}</div>
</div>
`
}
else if(news[i].imgPosition == 'b'){
text[i] = `
<div class="news">
<div class="title">${news[i].title}</div>
<div class="description">${news[i].description}</div><br>
<div><img class="bottom" src="img/${news[i].imgFilePath.split("/").pop()}"/></div>
</div>
`
}
else if(news[i].imgPosition == 'l'){
text[i] = `
<div class="row">
<div class="column1">
<img class="left" src="img/${news[i].imgFilePath.split("/").pop()}"/>
</div>
<div class="column2">
<span class="title">${news[i].title}</span>
<span class="description">${news[i].description}</span>
</div>
</div>
`
}
else {
text[i] = `
<div class="row">
<div class="column3">
<span class="title">${news[i].title}</span>
<span class="description">${news[i].description}</span>
</div>
<div class="column4">
<img class="right" src="img/${news[i].imgFilePath.split("/").pop()}"/>
</div>
</div>
`
}
}
$("#mypanel").html(text.join(""));
$("#mypanel > div:gt(0)").hide();
setInterval(function() {
$('#mypanel > div:first')
.fadeOut(1000)
.next()
.fadeIn(1000)
.end()
.appendTo('#mypanel');
}, 2000);
}
});
}, 2000);
});
</script>
`