2016-08-01 3 views
1

배경에 떠있는 아이콘과 mousescroll로이 입자 효과에 대한 도움이 필요합니다. 모든 아이콘은 아래에 첨부 된대로 애니메이션으로 다음 화면으로 평가해야합니다. HTML5 캔버스 입자 효과 아이콘으로

Second Screen

First Screen

아무도 날이 작업을 해결하는 데 도움이 될 것입니다 수 있습니다.

+0

은 당신이해야 할 노력 해왔다 무엇의 일부 코드를 알려 주시기 바랍니다. 이것은 우리가 당신을 도울 수 있습니다! –

+0

사실 저는 캔버스 애니메이션에 대한 지식이 없기 때문에 동일한 경우 검색하고 있습니다. 가능한 경우 스크래치 코드로 나를 도와주세요. –

답변

1

이 빠른 데모는 특정 숫자의 애니메이션 프레임에 대해 [startX, startY] 개에서 [endX, endY] 개까지의 1 개 이상의 이미지를 애니메이션 처리합니다.

IE에서는 mousewheel 이벤트를 수신하고 다른 브라우저에서는 DOMMouseScroll 이벤트를 수신하여 트리거 할 수 있습니다.

빠른 예제 코드와 데모 :

var canvas=document.getElementById("canvas"); 
 
var ctx=canvas.getContext("2d"); 
 
var cw=canvas.width; 
 
var ch=canvas.height; 
 

 
var images=[]; 
 

 
var img=new Image(); 
 
img.onload=start; 
 
img.src="https://dl.dropboxusercontent.com/u/139992952/shipSmall.jpg"; 
 
function start(){ 
 
    images.push(defineImageAnimation(img,20,20,200,100,60*2)); 
 
    requestAnimationFrame(animate); 
 
} 
 

 
function animate(time){ 
 
    ctx.clearRect(0,0,cw,ch); 
 
    var stillAnimating=false; 
 
    for(var i=0;i<images.length;i++){ 
 
     var img=images[i]; 
 
     if(img.durationCountdown>0){ 
 
      img.x+=img.dx; 
 
      img.y+=img.dy; 
 
      img.durationCountdown--; 
 
      stillAnimating=true; 
 
     }else{ 
 
      img.x=img.endX; 
 
      img.y=img.endY; 
 
     } 
 
     ctx.drawImage(img.image,img.x,img.y); 
 
    } 
 
    if(stillAnimating){ 
 
     requestAnimationFrame(animate); 
 
    } 
 
} 
 

 
// duration is expressed as how many requestAnimationFrame loops it 
 
//  should take the animation to complete. Loops occur about every 
 
//  1/60th of a second 
 
function defineImageAnimation(img,startX,startY,endX,endY,duration){ 
 
    return({ 
 
     image:img, 
 
     x:startX, y:startY, 
 
     endX:endX, endY:endY, 
 
     dx:(endX-startX)/duration, 
 
     dy:(endY-startY)/duration, 
 
     durationCountdown:duration 
 
    }); 
 
}
body{ background-color:white; } 
 
#canvas{border:1px solid red; }
<canvas id="canvas" width=512 height=512></canvas>

+0

답장을 보내 주셔서 감사합니다.하지만 만족스럽지 않습니다. 백그라운드에서 움직이는 입자는 거의 필요하지 않습니다. 그리고 스크롤하면 모든 입자가 위에 jpeg 예제가 첨부되어있는 모양으로 모여 있어야합니다. 참고 : 입자는 아이콘이어야합니다. 나를 도울 수 있는지 알려주세요. –

+0

나는 당신을 위해 당신의 프로젝트를하지 않을 것이다! : -o 대답은 프로젝트의 복잡한 부분 인 이미지를 애니메이션으로 만드는 방법을 보여줍니다. – markE

+0

전체 프로젝트를 묻지 않고 있습니다. 배경 이미지를 스크롤하는 도형으로 평가하는 방법을 알려 줄 수 있습니까? 예를 들어 보겠습니다. [데모] (http://www.jqueryscript.net/demo/Creating-3D-Interative-Parallax-Background-Effects-with-jQuery-Simples-3D/) –