Pixijs로 리플 효과 생성

Sep 13, 2025
어떻게
Create ripple effects

참여를 증가시키기 위해 페이지에 추가 할 수있는 흥미로운 효과가 많이 있지만 사이트의 전반적인 미학과 잘 결합되는 효과를 선택하는 것이 중요합니다 (귀하의 사이트의 미적을 훌륭한 웹 사이트 빌더 수단). 여기서 우리는 자바 스크립트로 변위 물결을 도입하는 방법을 보여줍니다. 체크 아웃 Mustafacelik. 행동의 효과의 좋은 예를 위해.

탭에서 약혼 분석을 원하십니까? 웹 호스팅 서비스는 이것을 도울 수 있습니다. 그리고 데이터를 맨 위에 안전하게 유지해야합니다. 클라우드 스토리지 ...에

1. 잔물결을 만듭니다

리플 이펙트를 생성하기 위해 Pixijs는 간단한 변위 효과를 제공하기 때문에 Pixijs가 사용됩니다. 여기서 JavaScript 코드는 필요한 변수를 설정하고 이미지를로드하여 효과를 만듭니다. 이미지가로드되면 '설정'기능이 호출됩니다.

 VAR APP = NEW PIXII.Application (Window.InnerWidth, Window.InnerHeight);
document.body.appendchild (app.view);
app.stage.interactive = true;
var posx, displacementsprite, displacementfilter, bg, vx;
var container = new pixi.container ();
app.stage.addchild (컨테이너);
pixi.loader.add ( "img / ripple.png"). 추가 ( "img / bg.jpg").로드 (설정);

2. 변위를 만듭니다

'설정'함수에서 변위 효과가 생성되고 변위 필터에 추가되는 변위 스프라이트가 생성됩니다. 그런 다음 그런 다음 앵커 포인트를 이미지의 중심으로 이동하고 화면에 위치하도록 설정됩니다.

 함수 설정 () {
  posx = app.renderer.width / 2;
  displaCementsPrite = 새로운 pixi.sprite (pixi.loader.resources [ "img / ripple.png"). 텍스처);
  변위 필터 = 새로운 pixi.filters.DisplaCementFilter (변위 기술);
  DISPLACEMATIONSPRITE.ANCHOR.SET (0.5);
  displacementsprite.x = app.renderer.width
/ 2;
  displacementsprite.y = app.renderer.height.
/ 2;
  vx = displacementsprite.x;

3. 설정을 완료하십시오

'설정'기능을 완료하려면 변위 필터 스케일이 설정되고 배경이 배치됩니다. 눈금은 변위에 대해 '0'이며, 마우스가 움직이지 자마자 높이로 설정되기 때문입니다.

 app.stage.stage.addchild (변위 기술);
  Container.Filters = [DisplacementFilter];
  displacementfilter.scale.x = 0;
  displacementfilter.scale.y = 0;
  bg = new pixi.sprite (pixi.loader.resources [ "img / bg.jpg"].) 텍스처);
  bg.width = app.renderer.width;
  bg.height = app.renderer.height;
  container.addchild (bg);
  app.Stage.on ( 'mousemove', onpointermove) .on ( '터치 모브', OneporterMove);
  고리();
} 

4. 마우스를 얻으십시오

다음 코드는 마우스가 움직일 때마다 X 축의 마우스의 위치를 ​​잡아줍니다. 이것은 사용자가 마우스를 이동할 때 리플 변위 효과의 양을 트리거하는 데 사용됩니다. 더 많은 움직임이 리플을 더 크게 만듭니다.

 함수 OnPointerMove (EventData) {
  posx = eventdata.data.global.x;
 }

5. 움직이십시오

'루프'기능은 계속해서 화면을 업데이트합니다. X 축에 대한 속도는 마우스와 리플의 위치를 ​​사용하여 작동합니다. 그런 다음 필터에 매핑되어 0에서 120 사이의 값을 제공합니다.

 함수 루프 () {
  requestanimationFrame (루프);
  vx + = (posx - displacementsprite.x) * 0.045;
  displacementsprite.x = vx;
  var disp = math.floor (posx - displacementsprite.x);
  (disp & lt; 0) disp = -disp;
  varfs =지도 (DISP, 0, 500, 0, 120);
  DISP =지도 (DISP, 0, 500, 0.1, 0.6);

6. 코드를 완성하십시오

'루프'기능의 끝에서 스프라이트는 변위량의 양과 필터가있는 깊이의 양으로 조정됩니다. 마지막으로 맵 값이 새로운 값으로 매핑 된 값이 지정됩니다.

 displacementsPrite.Scale.x = disp;
  displacementfilter.scale.x = fs;
}
 맵 = 함수 (n, start1, stop1, start2, stop2) {
  var newVal = (n - start1) / (stop1 - start1) * (stop2 - start2) + start2;
  Newval을 반환하십시오;
};

이 자습서의 전체 코드를 찾으십시오 파일로 ...에

이 기사는 원래 웹 디자이너 매거진에 등장했습니다. 여기를 구독하십시오 ...에

런던 2018 년 창출에서 자세히 알아보십시오

An image displaying the speakers appearing at Generate London and providing a link to buy tickets.

Sarah Parmenter, Bruce Lawson, Richard Rutter 및 Talk 님의 런던 2018 년을보십시오.

특수 효과 및 그 외에도 웹이 제목이있는 곳은 Marpi Marcinowski의 창조적 인 작업이 3D 세계 건물 주변에서 회전하여 몰입 형 AR, VR 경험 및 스토리 텔링을 차이로 만듭니다.

그의 이야기는 모든 대화 형 미디어 및 기술을 여행하고 사용자의 관점에서 그것을 보게됩니다.

밖으로 놓치지 마세요, 지금 티켓을 얻으십시오

관련 기사:

  • JavaScript에 의존하는 사이트를 만들 수 있습니까?
  • 1,000 개의 프로젝트에서 완벽한 JavaScript
  • 자바 스크립트로 CSS 클래스를 관리하는 방법

어떻게 - 가장 인기있는 기사

비즈니스의 웹 사이트 이름을 선택하는 방법

어떻게 Sep 13, 2025

(이미지 크레디트 : Pexels에서 yan) 웹 사이트 이름을 선택하려고합니까? 사이트를 설계 할..


Google에서 순위를 매기는 방법

어떻게 Sep 13, 2025

(이미지 크레디트 : Buzzfeed) 따라서 Google에서 순위를 매길 수있는 방법을 알고 싶습니다. ..


얼굴 마스크를 착용 할 때 안경을 멈추는 방법

어떻게 Sep 13, 2025

(이미지 크레디트 : 게티 이미지) 당신이 얼굴 마스크를 착용 할 때 안경이 안개를 올리�..


10 가지가 Photoshop과 함께 할 수있는 10 가지

어떻게 Sep 13, 2025

포토샵은 전체가 그 부분의 합보다 큰 완벽한 예제이며, 그 중 많은 부분이 많습니다. 도구, 조정 ..


Zbrush에서 3D 및 만화물을 결합하는 방법

어떻게 Sep 13, 2025

[삼] 페이지 1 / 2 : 페이지 1 페이지 1 2 쪽 3D Specialist Glen Southern은 3D �..


자신의 캐릭터 성경을 만드는 방법

어떻게 Sep 13, 2025

전문적으로 일하는 사람을 위해 캐릭터 디자인 문자 성경은 워크 플로우의 가장 필수 ..


다리 도구 마스터

어떻게 Sep 13, 2025

다리 도구는 무엇입니까? CGI의 새로운 경우 어지러운 소프트웨어 배열에서 선택할 수�..


화가의 수채화 세트를 결합하는 방법

어떻게 Sep 13, 2025

코렐 화가 수채화 도구의 연회를 제공합니다. 디지털, 실제 및 수채화 도구 카테고리를 �..


카테고리