이미지 배열간에 변경되는 함수를 작성하려고합니다. 내가 가지고있는 것은 나에게 의미가 있지만, 아래의 경우 첫 번째 이미지가로드되면 두 번째 이미지가로드되고 (투명도는 변경되지 않음) 아무 것도 발생하지 않습니다. 다음은 자바 스크립트 코드입니다.자바 재귀 문제
var image1 = new Image();var image2 = new Image(); var image3 = new Image();
image1.src = "images/website6.jpg"; image2.src = "images/website7.jpg"; image3.src = "images/sunset.jpg";
var images = new Array("images/website6.jpg","images/website7.jpg","images/sunset.jpg");
/*document.slide.style.opacity = 1;
document.slide.stylebg.opacity = 0;*/
setTimeout(function() { fade(images,0); }, 2000);
function delay(arr,num)
{
document.slide.src = arr[num % 3];
document.slide.style.opacity = 1;
document.slidebg.style.opacity = 0;
document.slidebg.src = arr[(num+1)%3];
var number = num + 1;
setTimeout(function() { fade(arr,number); }, 2000);
}
function fade(arr,num)
{
/*alert('fadebefore ' + (document.slide.style.opacity).toString())*/
document.slide.style.opacity -= 0.1
/*alert('fade')*/
document.slide.stylebg.opacity += 0.1
if (document.slide.style.opacity == 0)
{
setTimeout(function() { delay(arr,num); }, 150);
}
else
{
setTimeout(function() { fade(arr,num); }, 1500);
}
}
HTML은 간단합니다. 두 클래스가 있습니다. style
및 stylebg
. style
은 stylebg
앞에 있으며 필요에 따라 불투명도와 이미지를 변경합니다. 자바 스크립트는 나에게 논리적 인 것처럼 보이지만 예상대로 작동하지 않습니다. 또한 주목할 가치가있는 것은 3 개의 코멘트입니다. 첫 번째 주석 (3-4 행)은 처음에 불투명도를 설정하려고합니다. 그러나이 작업을 수행하면 위의 경우보다 진행률이 떨어집니다. 첫 번째 이미지가로드되고 다른 작업은 발생하지 않습니다. 두 번째 두 주석은 디버깅 목적으로 사용됩니다. 이러한 주석을 제거하면 이미지 변경이 두 경고 사이에서 발생합니다. 이는 이미지 변경이 불투명 변경으로 인해 발생했다고 판단하는 것 같습니다.
아무도 내가 왜 기대하지 않는지 설명 할 수 있습니까? 감사.
편집 : 좀 더 코드 :
HTML (이 영향을받는 유일한 부분입니다) :
<div style="position: relative;">
<img src="images/sunset.jpg" id="slide" />
<img src="images/website6.jpg" id="slidebg" />
</div>
CSS :
#slide{ display:block; margin-left:5; margin-right:auto; border: 1px solid black; z-index: 1; top: 0px; position: relative; } #slidebg{ display:block; margin-left:auto; margin-right:auto; border: 1px solid black; z-index: 0; top: 0px; position: absolute; }
쇼 HTML 코드 PLS – atlavis
자바 스크립트 코드는 매우 이상한 Internet Explorer를 사용합니까 : 당신이 원하는 것입니다 확실하지? – atlavis
@atlavis 아니요. Firefox를 사용하고 있지 않습니다. 이것이 자바 스크립트를 처음 작성한 이유입니다. 나는 그것에 대해 이상하게 설명 할 수있어서 기쁘다. – Paul