2026, 새로운 도약을 시작합니다.

javascript 이미지 겹침현상 채택완료

Copy


var originalID, cloneID; //인터벌 포인터

    window.addEventListener('DOMContentLoaded', function(){

 

        //롤링 배너 복제본 생성

        let roller = document.querySelector('.roller');

        roller.id = 'roller1';

 

        let clone = roller.cloneNode(true);

        clone.id = 'roller2';

        document.querySelector('.wrap').appendChild(clone); //부착

 

        //원본, 복제본 배너 위치 지정

        document.querySelector('#roller1').style.left = '0px';

        document.querySelector('#roller2').style.left = document.querySelector('.roller ul').offsetWidth+'px';

 

        //클래스 할당

        roller.classList.add('original');

        clone.classList.add('clone');

 

        //인터벌 메서드로 애니메이션 생성

        let rollerWidth = document.querySelector('.roller ul').offsetWidth;//회전 배너 너비값

        let betweenDistance = 1;//이동 크기 - 정수여야 함

        originalID = window.setInterval(betweenRollCallback, parseInt(1000/100), betweenDistance, document.querySelector('#roller1'));

        cloneID = window.setInterval(betweenRollCallback, parseInt(1000/100), betweenDistance, document.querySelector('#roller2'));

 

        //인터벌 애니메이션 함수(공용)

        function betweenRollCallback(d, roller){

            let left = parseInt(roller.style.left);

            roller.style.left = (left - d)+'px';//이동

            //조건부 위치 리셋

            if(rollerWidth + (left - d) 

롤링배너를 만드려고 하는데요 이미지 용량때문인지 shift+f5를 눌러 새로고침을 하면 겹치게 나오고

여기서 그냥 f5를하면 다시 원상복구가 됩니다.

항상 이미지가 겹치지 않도록 할수있을까요?

답변 2개

채택된 답변
+20 포인트

롤링요소들이 모두 고정 width, height 이면 크기 지정해 강제고정 하는 방법이 어떨까 싶은데

우선 로드에 시간이 걸리는 이미지 용량을 조절을 해야 할것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

이미지가 4kb이지만 20개가 넘어 로딩이 좀 걸리는거 같습니다.. 이미지를 먼저 로딩하는 방법을 찾아봐야겠습니다!

댓글을 작성하려면 로그인이 필요합니다.

이미지 로드 후 재정렬 해주셔야 할것 같은데요?

전체 이미지 로드 전에 실행되서 그런것 같은데

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

window.onload = function(){} 코드안에 롤링코드를 넣었는데 실행이 되지않네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고