Q&A

스크립트 여러개 적용하려고 하면 잘 안됩니다.

2023.07.01 08:06
302
0
CMS/프레임워크 Rhymix 2.0
개발 언어 PHP 7.3
문제 페이지 주소 비공개 (작성 후 5일 경과)

홈페이지 상단에 이미지 슬라이더를 넣고 싶어서 아래의 예제를 그대로 따라해봤습니다.

https://splidejs.com/v3/tutorials/image-slider/

 

테스트 페이지:

https://scorefactory.io/slidertest

 

그런데 기본적인 로딩과 작동은 잘되는데, 위 예제에 나온 PC에서는 슬라이드 2개, 모바일에서는 1개를 적용하기 위해서 스크립트를 추가 했더니 이 부분이 작동하지 않습니다.

 

<script>
  document.addEventListener( 'DOMContentLoaded', function () {
    new Splide( '#image-slider' ).mount();
  } );
</script>

이 부분이 슬라이더를 로딩하는 부분이고,

 

document.addEventListener( 'DOMContentLoaded', function () {
  new Splide( '#card-slider', {
perPage    : 2,
breakpoints: {
640: {
perPage: 1,
},
},
  } ).mount();
} );

이 부분이 PC에서는 2장 보여주는 부분이라

 

이 두 가지를 어떻게 한번에 입력해야 할지 알수 없어서,

현재는

<script>
document.addEventListener( 'DOMContentLoaded', function () {
  new Splide( '#image-slider' ).mount();
} );
new Splide( '#card-slider', {
perPage    : 2,
breakpoints: {
640: {
perPage: 1,
},
},
  } ).mount();
  </script>

이렇게 입력되어 있고,

 

그냥 따로따로

 

<script>
  document.addEventListener( 'DOMContentLoaded', function () {
    new Splide( '#image-slider' ).mount();
  } );

document.addEventListener( 'DOMContentLoaded', function () {
  new Splide( '#card-slider', {
perPage    : 2,
breakpoints: {
640: {
perPage: 1,
},
},
  } ).mount();
} );
</script>

 

이렇게도 입력해보았는데 그래도 pc에서도 모바일에서 1장씩만 보여줍니다.

 

무엇을 잘못했을까요?

스코스코 Lv. 5

댓글 2

  • 2023.07.01 14:53 #1771995
    new Splide( '#image-slider' ).mount();

    이 구문의 의미를 설명을 드리면 #image-slider라는 id를 가진 태그를 기준으로 해서 슬라이더를 만들고 동작을 시작하라는 뜻이겠지요.

    new Splide( '#card-slider', {
    perPage : 2,
    breakpoints: {
    640: {
    perPage: 1,
    },
    },
    } ).mount();

    이건 card-slider라는 id를 가진 태그를 기준으로 슬리이더를 만들겠다는 뜻이고 그외에 추가적으로 상세한 설정들을 덧붙인거구요...

    지금 페이지를 살펴보니까 card-slider라는 id를 가진 태그는 없습니다. image-slider라는 id를 가진 태그만 있네요. 그럼 new Splide('#card-slider', .....).mount() 이 코드는 실질적으로 아무 일도 하고 있지 않다고 봐도 될겁니다. 그리고 상세한 설정은 image-slider쪽을 활성화시키는 코드쪽에 덧붙여야겠지요.

    document.addEventListener( 'DOMContentLoaded', function () {
    new Splide( '#image-slider', {
    perPage : 2,
    breakpoints: {
    640: {
    perPage: 1,
    },
    },
    } ).mount();
    } );
    </script>

    이런 식으로 코드를 주시면 될겁니다.
  • 2023.07.01 16:43 #1772014
    어이쿠 되네요 ㅠ.ㅠ 감사합니다 !!