당신은 다음과 같은 뭔가를 비교적 쉽게 그렇게 할 수있는 동적 일 필요가 없었다 (working concept here at jsFiddle).
HTML : 나는 jsFiddle 코멘트에서 말하는 것처럼 당신이 #landing에 넣기 전에 그것으로 라인에서 다음 이미지를로드 할 수 있도록
<div id="dummyDiv"></div>
<div id="landing"><div id="cover" class="hide"></div></div>
, 당신이 dummyDiv이 필요합니다. 이 기능이 없으면 처음으로 이미지 배열을 반복하면서 로딩 시간에 직면하게됩니다.
CSS :
#dummyDiv {
position: inline;
height: 0;
width: 0;
margin: 0;
padding: 0;
}
#landing {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin-top: 0px;
background-image:url('http://placekitten.com/200/300');
background-repeat:no-repeat;
background-size:cover;
background-position:center;
background-color: black;
transition: background-image .5s;
z-index: -3;
}
#cover {
background: white;
opacity: .8;
transition: opacity .7s;
width: 100%;
height: 100%;
position: absolute;
z-index: -2;
}
#cover.hide {
opacity: 0;
}
자바 스크립트
var kittens = ["http://placekitten.com/200/300", "http://placekitten.com/400/301", "http://placekitten.com/200/305", "http://placekitten.com/200/308"]
var currentKitten = 1;
var lastKitten = 0;
var changeUpTheKitten = function() {
lastKitten = currentKitten;
currentKitten = (++currentKitten < kittens.length) ? currentKitten : 0;
// we need to cache the image so it loads in smoothly as a bg on the real #landing div
$("#dummyDiv").css("background-image", "url("+kittens[currentKitten]+")");
$("#cover").removeClass("hide");
$("#landing").css("background-image", "url("+kittens[lastKitten]+")");
// url("+kittens[lastKitten]+")"
setTimeout(function() { $("#cover").addClass("hide"); }, 700);
};
var kittenChangeInterval = setInterval(changeUpTheKitten, 3000);
숫자 놀이 주시기 바랍니다. 몇 가지 값을 조정하면 훨씬 다른 것처럼 보일 수 있습니다. 질문이 있으시면 언제든지 물어보십시오.
그냥 다음 단계를 수행 할 필요가 fadeIn 및 페이드 아웃 효과를
만약 그가 크로스 페이드를 원하지 않는다면 –