2013-08-20 2 views
1

javascript에 이미지 변경 기능이있는 이미지 배열이 있습니다. 이 함수는 html로 (href = "javascript : change_image (1) with the HTML에서 링크로 링크 된 이미지에 의해 호출됩니다.)change_image 함수에 페이드 효과를 추가하는 방법

스크립트는 HTML로로드 될 때 잘 작동하지만, 페이드 효과를 추가하고 싶습니다 그것에 수 있도록 각 이미지는 페이드 아웃되고 새가 페이드 누군가가 올바른 방향으로 날을 넣을 수 내가 정말 감사

..

스크립트 :.?

var Image = new Array("Img/1.jpg","Img/2.jpg","Img/3.jpg","Img/4.jpg","Img/5.jpg","Img/6.jpg"); 

var Image_Number = 0; 
var Image_Length = Image.length - 1; 

function change_image(num){ 

Image_Number = Image_Number + num; 

if (Image_Number>Image_Length){ 

    Image_Number = 0; 
} 
if (Image_Number<0){ 

    Image_Number = Image_Length; 
} 


document.slideshow.src= Image[Image_Number]; 

return false; 
} 
+0

jQuery를 허용하거나에만 자바 스크립트가 필요합니까? – Arpit

+0

@Arpit에서 제안하는 것처럼 [jQuery] (http://api.jquery.com/fadeToggle/)는 이것을 구현하는 매우 쉬운 방법입니다. 더 나은 성능을 보이는 CSS 전환을 사용하여이를 구현할 수있는 방법도 있지만 이미지를 교체하는 방식을 변경해야 할 수도 있습니다. – raddevon

+0

Jquery가 허용됩니다. 어떤 아이디어? –

답변

0

방법에 대한 이?

HTML :

<img id="image" src="Img/1.jpg"><br> 
<span id="change_image">Change image!</span> 

JS :

var images = ["Img/1.jpg", "Img/2.jpg", "Img/3.jpg", "Img/4.jpg"]; 

$(document).ready(function(){ 
    var image_number = 0; 
    // Click handler for "change image" link 
    $("#change_image").click(function(){ 
     // Get number of next image (loop) 
     image_number = (image_number + 1) % images.length; 
     // Make sure the image is loaded (if not, preload it) 
     $("<img>").attr("src", images[image_number]).load(function(){ 
      // As soon as the next image is loaded, fade out the current one... 
      $("#image").fadeOut(function(){ 
       // ...and fade in the new image :) 
       $(this).attr("src", images[image_number]).fadeIn(); 
      }); 
     }); 
    }); 
}); 

DEMO (JSFiddle)

+0

그래 맞아! 아직 해결해야 할 두 가지가 있습니다 : (1) 함수로드가 스팬이 아닌 이미지로로드되어야 함 (2) 마우스 오버시 스킨 (곧 이미지가 될 것임)에 손 로고가 표시되지 않는 것으로 나타났습니다. . 나는이 쇼를 원해. –

+0

(1) 원하는 HTML 요소에 클릭 핸들러를 첨부 할 수 있습니다. jQuery에 전달 된 CSS 선택기 만 조정하면됩니다. 내 대답과 JSFiddle을 업데이트하여 이제는 'span'없이 작동합니다. 또는 클릭 핸들러 ('$ ("# change_image") .coll ...)가있는 라인을 일반 함수로 대체하고 onclick' 속성 (원래 코드와 유사)을 사용할 수 있습니다. (2) 이것은 CSS로 할 수 있습니다 :'cursor : pointer' – Aletheios

+0

첫 번째 답을 업로드하십시오 :이 기능은 다른 이미지 (어레이 자체의 이미지가 아님)로로드해야합니다. 따라서 함수를 트리거하는 범위를 제안하는 대답은 나에게 더 유용합니다. 많은 감사 –

관련 문제