2017-11-06 23 views
0

특정 브라우저 너비에서 내 매끄러운 슬라이더의 마지막 두 개의 슬라이드를 제거해야합니다. 마지막 두 개의 슬라이드를 제거하십시오.

내가 생각 :

$('.slider').slick('slickRemove', slideIndex - 1); 

적어도 마지막을 위해 그것을 할 것입니다. 그러나 나는 틀렸다. 여기

는 바이올린입니다 : https://jsfiddle.net/osywsskz/

..

내가 특정 슬라이드 번호를 선택하는 경우 : 작동

$('.slider').slick('slickRemove',4); 

합니다. 슬라이드의 수는 달라, 그래서 이것은 해결책 the github page of slick.js에서 직접

+0

'slideIndex'는 그 시점에서 정의되어 있지 않습니다. – Soolie

답변

1

:

$(".slider").slick({ 
    autoplay: false, 
    dots: true, 
}); 

$(document).ready(function(){ 

    var docWidth = $(document).width();  

    function getLastSlide(){ 
    return ($(".slider").slick("getSlick").slideCount - 1); 
    } 

    var deleteCount = 2; 

    if(docWidth>500 && docWidth<700) 
    { 
    for (var i = 0; i < deleteCount; i++) { 
     $('.slider').slick('slickRemove', getLastSlide()); 
    } 
    } 
}); 
+0

오 마이 갓 마술 : D - 고마워! 마지막 두 개뿐 아니라 마지막 두 개를 어떻게 삭제할 수 있습니까? –

+0

그리고 이보다 더 많은 중단 점을 결합하는 더 좋은 방법이 있습니다 : https://jsfiddle.net/cyhosusx/? –

+1

@MaxDiCampo 내 게시물을 업데이트했습니다. 변수'deleteCount'에서 그림의 수를 지정하기 만하면되기 때문에 제 방법이 더 낫다고 생각합니다. – leusrox

0

없지만 :

slickRemove
인덱스, 인덱스에 의해 removeBefore
제거 슬라이드. removeBefore 이 true로 설정된 경우 슬라이드 선행 색인을 제거하거나 색인이 지정되지 않은 경우 첫 번째 슬라이드를 제거합니다. removeBefore가 false로 설정된 경우 색인 뒤에 슬라이드 슬라이드를 제거하거나 색인이 설정되지 않은 경우 마지막 슬라이드를 제거하십시오.

그래서 $('.slider').slick('slickRemove', false); 트릭을! 참조 바이올린 : 우리는 슬라이드 수를 얻을 수 https://jsfiddle.net/0ufomhmz/

+0

감사합니다,하지만 여기에 우리는 나의 지식 경계에 있습니다 : D - 나는 정말로 그것을 어떻게 해야할지 모르겠습니다. : O 나에게 힌트를 주시겠습니까? –

+0

@SteveB ofcourse에서 제공하는 솔루션을 사용할 수 있지만이 기능은 훨씬 깨끗해 보이며 slick.js의 직접 지원되는 API이기도합니다. – joerideg

+0

나는 가장 깨끗한 해결책을 찾고있다. 귀하의 예를 들어, 마지막 두 가지를 삭제하려면 어떻게해야합니까? –

0

당신은 슬라이드의 개수로 slideIndex을 정의 할 필요가있다. 당신은 다음과 같은 코드가 작동 (가장 우아한되지 않음)되는 마지막 두 개의 슬라이드를 제거하려면

var slideIndex = $(".slider > *").length 

을 다음과 같이 즉, 수행 할 수 있습니다

$('.slider').slick('slickRemove', slideIndex); 
$('.slider').slick('slickRemove', slideIndex - 1); 

이 모든 그래서 당신의 if 문 안에 최종 코드는 다음과 같습니다.

var docWidth = $(document).width();  

if(docWidth>500 && docWidth<700) 
{ 
    var slideIndex = $(".slider > *").length 
    $('.slider').slick('slickRemove', slideIndex); 
    $('.slider').slick('slickRemove', slideIndex - 1); 
} 
+0

감사합니다.이 작업 중입니다! 솔루션을 찾는 다른 모든 사람들을 위해 다음은 업데이트 된 바이올린입니다. https://jsfiddle.net/wxspsn35/ –

+0

죄송합니다. 추가 질문. 이것을 여러개의 중단 점과 어떻게 조합합니까? 그래서 예. 500-700 사이에 마지막 두 개를 삭제하십시오. 701 ~ 1000 사이의 값은 마지막으로 삭제됩니다. 나는 시도했지만 실패했다. https://jsfiddle.net/d4k5z2zh/ –

+0

내가 제공 한 코드는 두 줄을 사용하여 마지막 두 개의 색인을 삭제한다. 마지막 색인 만 지우려면 slideIndex -1 (if 문의 마지막 줄)이라는 줄을 제거하십시오. 아래에서 언급했듯이 이것을 처리하고 슬라이드를 삭제하는 더 좋은 방법이 있습니다. 표시 할 슬라이드의 양을 설정하고 나머지는 스크롤 할 수 있습니다. – SteveB