팝업으로 슬릭 슬라이더 오토슬라이드 멈춤 질문입니다! 채택완료
안녕하세요 고수님들 ㅠㅠ
제가 팝업 슬라이드를 코딩을 쳤습니다
다만, 팝업을 닫았을 때 오토슬라이드가 정지되어야 하는데 어떻게 하는지 모르겠네요...
</p>
<p>function close_pop(flag){</p>
<p> $(".por-popup").hide();</p>
<p>};</p>
<p> </p>
<p>$('.pop-bg').click(function(){</p>
<p> $('.popup-slide-1').slick('slickPause');</p>
<p> </p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button1').click(function(){</p>
<p> $('.por-popup-1').show();</p>
<p> $('.popup-slide-1').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p> </p>
<p>
이런식으로 팝업 슬라이드가 7개가 있습니다 ㅠㅠ
그래서 위 코드를 반복해서 7개 쳤는데요..
1. 팝업 닫기를 누르면! 즉,
$('.pop-bg').click(function(){
$('.popup-slide-1').slick('slickPause');
}); 이 부분이 작동하지를 않습니다.
그리고 팝업을 열고 닫을때마다 개발자도구에서 오류가 났다고 엄청 뜹니다 ㅠㅠ
2. 자바스크립트를 엄청 반복해서 쳤는데.. 혹시 for문같은걸 이용하여서 간단하게 만들수있나요?
</p>
<p>// 정지 감춤 재실행 등</p>
<p> </p>
<p>function close_pop(flag){</p>
<p> $(".por-popup").hide();</p>
<p> </p>
<p>};</p>
<p> </p>
<p>$('.pop-bg').click(function(){</p>
<p> $('.popup-slide-1').slick('slickPause');</p>
<p> $('.popup-slide-2').slick('slickPause');</p>
<p> $('.popup-slide-3').slick('slickPause');</p>
<p> $('.popup-slide-4').slick('slickPause');</p>
<p> $('.popup-slide-5').slick('slickPause');</p>
<p> $('.popup-slide-6').slick('slickPause');</p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button1').click(function(){</p>
<p> $('.por-popup-1').show();</p>
<p> $('.popup-slide-1').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button2').click(function(){</p>
<p> $('.por-popup-2').show();</p>
<p> $('.popup-slide-2').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p> </p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button3').click(function(){</p>
<p> $('.por-popup-3').show();</p>
<p> $('.popup-slide-3').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p> </p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button4').click(function(){</p>
<p> $('.por-popup-4').show();</p>
<p> $('.popup-slide-4').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p> </p>
<p>});</p>
<p> </p>
<p>$(function(){</p>
<p> $('#por-popup-button5').click(function(){</p>
<p> $('.por-popup-5').show();</p>
<p> $('.popup-slide-5').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p>
</p>
<p>$(function(){</p>
<p> $('#por-popup-button6').click(function(){</p>
<p> $('.por-popup-6').show();</p>
<p> $('.popup-slide-6').slick({</p>
<p> slide: 'div', //슬라이드 되어야 할 태그 ex) div, li </p>
<p> infinite : false, //무한 반복 옵션 </p>
<p> slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수</p>
<p> slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수</p>
<p> speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)</p>
<p> arrows : true, // 옆으로 이동하는 화살표 표시 여부</p>
<p> autoplay : true, // 자동 스크롤 사용 여부</p>
<p> autoplaySpeed : 5000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)</p>
<p> pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정</p>
<p> vertical : false, // 세로 방향 슬라이드 옵션</p>
<p> draggable : true, //드래그 가능 여부 </p>
<p> dots : true, // 스크롤바 아래 점으로 페이지네이션 여부</p>
<p> dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정</p>
<p> customPaging: function (slider, i) {</p>
<p> //FYI just have a look at the object to find available information</p>
<p> //press f12 to access the console in most browsers</p>
<p> //you could also debug or look in the source</p>
<p> console.log(slider);</p>
<p> return (i + 1) + '/' + slider.slideCount;</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p> </p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
4년 전
여러개 컨트롤해야하니까
클래스와 data로 관리하고요
slick 이 한번 initialize 되었을때 다시 initialize 하면 에러나더라고요
destroy 하고 다시 실행해야겠지만
그렇게 되면 슬라이드 순번이 초기화 되어서
배열 변수 하나 잡고
slick init 할때 배열에 넣어서 컨트롤
</p>
<p><div class="por-popup" data-popup="1" style="display: none;">
<div class="slider popup-slide">
<div><h3>1-1</h3></div>
<div><h3>1-2</h3></div>
<div><h3>1-3</h3></div>
<div><h3>1-4</h3></div>
<div><h3>1-5</h3></div>
<div><h3>1-6</h3></div>
</div>
<div><button type="button" class="por-close">Close</button></div>
</div>
<div class="por-popup" data-popup="2" style="display: none;">
<div class="slider popup-slide">
<div><h3>2-1</h3></div>
<div><h3>2-2</h3></div>
<div><h3>2-3</h3></div>
<div><h3>2-4</h3></div>
<div><h3>2-5</h3></div>
<div><h3>2-6</h3></div>
</div>
<div><button type="button" class="por-close">Close</button></div>
</div>
<div class="por-popup" data-popup="3" style="display: none;">
<div class="slider popup-slide">
<div><h3>3-1</h3></div>
<div><h3>3-2</h3></div>
<div><h3>3-3</h3></div>
<div><h3>3-4</h3></div>
<div><h3>3-5</h3></div>
<div><h3>3-6</h3></div>
</div>
<div><button type="button" class="por-close">Close</button></div>
</div>
<div class="por-popup" data-popup="4" style="display: none;">
<div class="slider popup-slide">
<div><h3>4-1</h3></div>
<div><h3>4-2</h3></div>
<div><h3>4-3</h3></div>
<div><h3>4-4</h3></div>
<div><h3>4-5</h3></div>
<div><h3>4-6</h3></div>
</div>
<div><button type="button" class="por-close">Close</button></div>
</div></p>
<p>
<button type="button" class="por-popup-button" data-index="1">1</button>
<button type="button" class="por-popup-button" data-index="2">2</button>
<button type="button" class="por-popup-button" data-index="3">3</button>
<button type="button" class="por-popup-button" data-index="4">4</button>
<button type="button" class="por-popup-button" data-index="5">5 없음</button></p>
<p><script>
var _slick = [];
$(function(){
$('.por-popup-button').on('click', function(){
var $this = $(this),
index = $this.data('index') || '',
$popup = $('.por-popup[data-popup="' + index + '"]'),
$slide = $popup.find('.popup-slide');</p>
<p> if (!$slide) return;</p>
<p> $popup.show();</p>
<p> if (_slick[index]) {
_slick[index].slick('slickPlay');
} else {
_slick[index] = $slide.slick({
slide: 'div', //슬라이드 되어야 할 태그 ex) div, li
infinite : false, //무한 반복 옵션
slidesToShow : 1, // 한 화면에 보여질 컨텐츠 개수
slidesToScroll : 1, //스크롤 한번에 움직일 컨텐츠 개수
speed : 100, // 다음 버튼 누르고 다음 화면 뜨는데까지 걸리는 시간(ms)
arrows : true, // 옆으로 이동하는 화살표 표시 여부
autoplay : true, // 자동 스크롤 사용 여부
autoplaySpeed : 1000, // 자동 스크롤 시 다음으로 넘어가는데 걸리는 시간 (ms)
pauseOnHover : true, // 슬라이드 이동 시 마우스 호버하면 슬라이더 멈추게 설정
vertical : false, // 세로 방향 슬라이드 옵션
draggable : true, //드래그 가능 여부
dots : true, // 스크롤바 아래 점으로 페이지네이션 여부
dotsClass : "custom_paging", //아래 나오는 페이지네이션(점) css class 지정
customPaging: function (slider, i) {
//FYI just have a look at the object to find available information
//press f12 to access the console in most browsers
//you could also debug or look in the source
//console.log(slider);
return (i + 1) + '/' + slider.slideCount;
}
});
}
});</p>
<p> $('.por-close').on('click', function() {
var $this = $(this),
$popup = $this.closest('.por-popup'),
$slide = $popup.find('.popup-slide'),
index = $popup.data('popup');</p>
<p> _slick[index].slick('slickPause');
$popup.hide();
});
});
</script></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택