javascript 이미지 겹침현상 채택완료
굿디그누
3년 전
조회 2,025
</p>
<p>var originalID, cloneID; //인터벌 포인터</p>
<p> window.addEventListener('DOMContentLoaded', function(){</p>
<p> </p>
<p> //롤링 배너 복제본 생성</p>
<p> let roller = document.querySelector('.roller');</p>
<p> roller.id = 'roller1';</p>
<p> </p>
<p> let clone = roller.cloneNode(true);</p>
<p> clone.id = 'roller2';</p>
<p> document.querySelector('.wrap').appendChild(clone); //부착</p>
<p> </p>
<p> //원본, 복제본 배너 위치 지정</p>
<p> document.querySelector('#roller1').style.left = '0px';</p>
<p> document.querySelector('#roller2').style.left = document.querySelector('.roller ul').offsetWidth+'px';</p>
<p> </p>
<p> //클래스 할당</p>
<p> roller.classList.add('original');</p>
<p> clone.classList.add('clone');</p>
<p> </p>
<p> //인터벌 메서드로 애니메이션 생성</p>
<p> let rollerWidth = document.querySelector('.roller ul').offsetWidth;//회전 배너 너비값</p>
<p> let betweenDistance = 1;//이동 크기 - 정수여야 함</p>
<p> originalID = window.setInterval(betweenRollCallback, parseInt(1000/100), betweenDistance, document.querySelector('#roller1'));</p>
<p> cloneID = window.setInterval(betweenRollCallback, parseInt(1000/100), betweenDistance, document.querySelector('#roller2'));</p>
<p> </p>
<p> //인터벌 애니메이션 함수(공용)</p>
<p> function betweenRollCallback(d, roller){</p>
<p> let left = parseInt(roller.style.left);</p>
<p> roller.style.left = (left - d)+'px';//이동</p>
<p> //조건부 위치 리셋</p>
<p> if(rollerWidth + (left - d) <= 0){</p>
<p> roller.style.left = rollerWidth+'px';</p>
<p> }</p>
<p> } </p>
<p> });</p>
<p>
롤링배너를 만드려고 하는데요 이미지 용량때문인지 shift+f5를 눌러 새로고침을 하면 겹치게 나오고
여기서 그냥 f5를하면 다시 원상복구가 됩니다.
항상 이미지가 겹치지 않도록 할수있을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
3년 전
롤링요소들이 모두 고정 width, height 이면 크기 지정해 강제고정 하는 방법이 어떨까 싶은데
우선 로드에 시간이 걸리는 이미지 용량을 조절을 해야 할것 같습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
굿디그누
3년 전
이미지가 4kb이지만 20개가 넘어 로딩이 좀 걸리는거 같습니다.. 이미지를 먼저 로딩하는 방법을 찾아봐야겠습니다!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인