서문 : jQuery 코드를 처음 작성하고 had help animateContinously() 함수를 작성하는 데 익숙하지 않습니다. 나는 backstretch 제어 이미지의 상단에 표시됩니다 텍스트합니다 (jquery-color.js plugin의 도움으로) 색상을 변경하려면 전체 브라우저 뷰포트/배경 슬라이드 쇼 및 jQuery animate() 기능을 가지고 backstretch.js을 사용하고 backstretch.js의 지속 시간이 .animate() 지연과 일치하지 않습니다.
이있는 backstretch에 따라
이미지가 표시됩니다. 그것은 작동하지만 backstretch() duration과 animate() delay를 같은 번호, 즉 5000 (5 초)으로 설정하면 동기화되지 않습니다. 그래서 나는 그들을 1000 (1 초)만큼 상쇄하는 것을 시도했다. 텍스트와 배영 된 이미지는 원하는만큼 정확히 같은 시간에 페이드 인/아웃했다. 그러나 15 또는 그 이후의 트랜지션 후에는 다시 동기화되지 않는다.지연 시간이 같은 시간이 & 인 이유에 대한 아이디어 나 도움이 필요합니까? 그리고/또는 1 초 오프셋이 처음에는 작동하고 왜 동기화되지 않는 이유는 무엇입니까? 여기 내 코드입니다 :
<script src="jquery.js"></script>
<script src="jquery-color.js"></script>
<script src="backstretch.js"></script>
<script>
$.backstretch([
"_img/bg01.jpg",
"_img/bg02.jpg"
], {
fade: 1000,
duration: 4000
});
</script>
<script>
function animateContinuously($element, attr, values) {
var i = 0, count = values.length;
setInterval(function() {
i = (i + 1) % count;
var props = {};
props[attr] = values[i];
$element.animate(props, 1000);
}, 5000); // // in sync with backstretch() if 1000 more, but falls out of sync after 15-18 transitions
animateContinuously($("#color-change1"), 'color', ['#de7056', '#4ec67f']);
animateContinuously($("#color-change2"), 'svgFill', ['#de7056', '#4ec67f']);
</script>
</body>
와우! 다시 한번 감사드립니다. 이것은 매우 도움이됩니다. 내 배열은 항상 같은 길이가 될 것이므로 첫 번째 예제는 내가 사용할 작업입니다. 두 번째 jsfiddle도 살펴 보았지만 배열에서 두 번째 # 43c67 (오렌지색) 일 때 왜 # 999999 (회색) 색상이 두 번째로 # color-change1에 적용되는지 혼란 스럽습니까? – codeview
@codeview - 두 도형의 초기 색이 흰색이기 때문입니다. 나는 그것들을 초기에 모두'# de7056' (배열의 첫 번째 색)이되도록 변경했습니다. 'i' 변수는 0에서 시작하지만 애니메이션 전에 증가하기 때문에 애니메이션이 처음 실행될 때 배열의 두 번째 색상으로 바뀝니다 (i = 1이기 때문에). –