inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]

저도 loop함수만 실행하면 오류가떠요!

해결된 질문

229

작성자 없음

작성한 질문수 0

0

 
안녕하세요! 저도 스크립트에서 loop(); 만 실행하면
스크롤 하게되면
강아지있는 사진이 붕 뜨는데 뭐가 문제일까요ㅠㅠ
혹시 코드 봐주실수 있나요!!
 
let x = 0;
let y = 0;
let mx = 0;
let my = 0;
let speed = 0.03;
let scrollTop = 0;

let parallax_0, parallax_1, parallax_2, parallax_3, parallax_4, parallax_5, parallax_6;

window.onload = function () {
progressBar = document.getElementsByClassName("progressBar")[0];

parallax_0 = document.getElementById("parallax_0");
parallax_1 = document.getElementById("parallax_1");
parallax_2 = document.getElementById("parallax_2");
parallax_3 = document.getElementById("parallax_3");
parallax_4 = document.getElementById("parallax_4");
parallax_5 = document.getElementById("parallax_5");
parallax_6 = document.getElementById("parallax_6");

window.addEventListener('resize', stageResize, false);
window.addEventListener('mousemove', mouseMove, false);
window.addEventListener('scroll', scrollFunc, false);

stageResize();
loop();
}

function scrollFunc(e) {
scrollTop = document.documentElement.scrollTop;

let per = Math.ceil(scrollTop / (_documentHum - _windowHNum) * 100);
progressBar.style.width = per + '%';

parallax_0.style.transform = "translate3d(0px," + scrollTop * .03 + "px, 0px)";
parallax_1.style.transform = "translate3d(0px," + -scrollTop * .03 + "px, 0px)";
parallax_2.style.transform = "translate3d(0px," + -scrollTop * .12 + "px, 0px)";
parallax_3.style.transform = "translate3d(0px," + -scrollTop * .16 + "px, 0px)";
parallax_4.style.transform = "translate3d(0px," + -scrollTop * .22 + "px, 0px)";
parallax_5.style.transform = "translate3d(0px," + -scrollTop * .25 + "px, 0px)";
}

function stageResize(){
_documentHum = document.body.offsetHeight;
_windowHNum = window.outerHeight;
}

function loop(){
mx += (x - mx) * speed;
my += (y - my) * speed;

parallax_4.style.transform = "translate3d(" + mx / 140 + "px ," + -scrollTop * 22 + "px, 0px)";
parallax_5.style.transform = "scale(1.1) translate(" + mx / 50 + "px," + -scrollTop * 25 + "px)";
parallax_6.style.transform = "scale(1.2) translate(" + -mx / 20 + "px," + -my / 20 + "px)";

window.requestAnimationFrame(loop);
}

function mouseMove(e){

x = (e.clientX - window.innerWidth / 2);
y = (e.clientY - window.innerHeight / 2);
}

javascript 인터랙티브-웹

답변 1

0

코딩일레븐

안녕하세요

scrollFunc(e) 안에 있는 아래 두 줄을 주석 처리 해보세요.

//parallax_4.style.transform = "translate3d(0px," + -scrollTop * .22 + "px, 0px)";
//parallax_5.style.transform = "translate3d(0px," + -scrollTop * .25 + "px, 0px)";

loop() 함수 내부에도 있어서 transform 값 변경이 일어나고 있어서 문제가 발생하겠네요.

0

jjy

주석처리했는데도 똑같이 그러고있어요!...ㅠㅠㅠ loop()안에 

parallax_4.style.transform = "translate3d(" + mx / 140 + "px ," + -scrollTop * 22 + "px, 0px)";
에서 -scrollTop 부분이 잘못된건가요?! 오히려 저부분을 주석하니까 마우스페럴렉스는 안되는데 스크롤은 잘되요..

0

코딩일레븐

loop() 함수안의 5,6번 빼고 전부 주석처리해보세요. 0~4번까지 

스크롤 및 마우스 이벤트 잘 되고 있습니다. 참고로 5번이 멍멍이 이미지 입니다.

0

jjy

감사합니다~!!!

mouse position interpolation과 transition linear interpolation의 차이

0

95

1

mousemove 시 따라 다니는 커서 이미지 wheel 할 경우

0

205

2

부드러운 움직임 구현1 강의 부분 질문있습니다.

0

166

2

go live 실시간 크롬

0

337

1

javascript 도움말 vsCode 확장팩 문의!

0

379

1

블로그 상단 페럴렉스 효과 구현 질문 있습니다!

0

367

1

마우스 인터렉티브 변형 질문

0

350

1

안녕하세요. 수업 잘 듣고 있습니다. 포트폴리오 관련 질문도 가능할까요?

0

406

1

나비가 버튼위로올라가면 버튼의 hover기능이 멈춰버려요

0

356

1

perspective에 대해서

0

300

1

CSS에서 궁금했던 부분 -실전 페럴렉스 강의 부분

0

492

1

requestAnimationFrame 질문

0

370

1

리뉴얼 이전 강의 파일

0

452

1

코드가 미리보기로 보여주는 확장프로그램이 뭔가요?

0

754

1

수업 파일 부탁드립니다~

0

333

1

배경질문

0

360

1

textWrap의 position을 relative로 주는 것에 대해 질문있습니다!

0

298

1

safari에서 position fixed가 잘 동작하지 않습니다

0

987

1

addEventListener후에 익명함수 실행할때 뒤에 false는 어떤 역할을 하는건가요?

0

566

1

스피드 변수로 scrollTop을 두는 이유가 무엇인가요?

0

373

1

완성파일 어디서 받아볼 수 있나요 ?

0

439

1

완성 파일 요청 드립니다.

0

308

1

사진들이 상단 nav바를 침범하는데 침범 못하게 어떻게해야할까요?

0

157

1

리액트로 하면 어떻게 해야할지 작성해주실수있나요?

0

378

1