2013-05-29 161 views
0

我想爲一個項目製作這個簡單的滑塊。滑塊導航

我有此琴:http://jsfiddle.net/6PEgu/6/

我需要建立我的導航幫助,所以我可以跳轉到不同的幻燈片背部和第四使用CSS類。我不知道如何從這一點做到這一點。我需要jquery來切換我的滑塊面板上的類與類取決於哪個按鈕被按下。

HTML

<div class="slider-wrap"> 
<div class="slider-nav"> 
    <ul> 
     <li><span class="slide-one">Slide red</span> 
     </li> 
     <li><span class="slide-two">Slide blue</span> 
     </li> 
    </ul> 
</div> 
<div class="slider-panel-wrap"> 
    <section class="slider-panel red-background" id="slider-panel-1">TEST SIDE 1 
     <div class="slider-caption-wrap"></div> 
    </section> 
    <section class="slider-panel blue-background" id="slider-panel-1">TEST SIDE 2 
     <div class="slider-caption-wrap"></div> 
    </section> 
</div> 

CSS

.slider-wrap { 
    width:100%; 
    height:100%; 
    background-color: #567; 
    overflow: hidden; 
} 
.slider-nav { 
    position: fixed; 
    bottom: 5%; 
    left: 5%; 
    z-index: 2; 
    cursor:pointer; 
    text-decoration:underline; 
} 
.slider-panel-wrap { 
    width:100%; 
    height:100%; 
    background-color: #F50; 
} 
.slider-panel { 
    width:100%; 
    height:100%; 
    background-color: #F20; 
} 
.red-background { 
    background-color: #F20; 
} 
.blue-background { 
    background-color: #567; 
} 
.slider-wrap-0 { 
    -webkit-transform: translateY(0%); 
    -moz-transform: translateY(0%); 
    -o-transform: translateY(0%); 
    -ms-transform: translateY(0%); 
    transform: translateY(0%); 
} 
.slider-wrap-100 { 
    -webkit-transform: translateY(-100%); 
    -moz-transform: translateY(-100%); 
    -o-transform: translateY(-100%); 
    -ms-transform: translateY(-100%); 
    transform: translateY(-100%); 
} 

JQUERY

$(document).ready(function() { 
    $('.slide-two').click(function() { 
     $(".slider-panel-wrap").addClass("slider-wrap-100"); 
    }); 
}); 

謝謝

+0

您的面板具有相同的ID。 你的滑塊只有兩個幻燈片,還是很多? – FLX

+0

它的一個錯誤 - 在這裏更新版本。我基本上只需要一個更智能的方式來使用Jquery,如果可能的話:http:// jsfiddle。net/GARCd/1/ 在這個全屏滑動條下面,就像它會來,也許更多的下面那個... – implum

回答

0

這裏有一個簡單的方法:

  • 算子
  • 隱藏的所有幻燈片
  • 顯示第一個數字滑動並將currentSlide var設置爲0
  • make as lide函數:將索引作爲參數傳遞。隱藏所有幻燈片,顯示相當於參數的幻燈片...

如果您想要prev next函數,您只需增加或減少currentSlide var並將其傳遞給幻燈片函數。

我希望我的英語可以理解。

**(更新)小的實現:**

var slides = $(YOURCONTAINER).children(yourslideclass); 
slides.hide(); 
var numberOfSlides = $(YOURCONTAINER).children(yourslideclass).size()-1; 
var currentSlide = 0 

function changeSlide(slideID){ 
currentSlide.hide(); 
$("yourslideclass:eq(slideID)").show(); 
currentSlide = slideID; 
} 

對於下一張幻燈片功能,每爲例:

$(nextSlideButton).on('click',function(){ 
    if(currentSlide+1 <= numberOfSlides){ 
     changeSlide(currentSlide+1); 
    } 
}); 

而且你甚至可以添加像淡入淡出或滑動了一些不錯的過渡在顯示和隱藏功能:)

希望這會有所幫助。

+0

謝謝 - 但我不知道如何做到這一點,所以我會prolly必須使用其他方法。 – implum

+0

當然,我會從我目前正在編寫的插件中製作一個複製粘貼。但是,如果你不知道要做什麼,並且如果你是爲了工作而不是學習,爲什麼不使用jquery插件?有很多簡單和完美的滑塊。 – FLX

+0

那麼它有點學習,但我需要它爲我的考試項目,所以我將需要使它儘可能簡單,所以我可以解釋我做了什麼:)這就是爲什麼我需要它非常簡單,重量輕,並與很多CSS(我使用CSS轉換translateY來滑動,如果可能,我想繼續使用CSS)。我不能使用一個大插件與我不需要和不能解釋的各種功能。計劃是增加一個CSS計時器 - 不過,以後再說。 – implum

0

如果我理解正確,那麼現在錯誤的是你不能導航回紅色幻燈片。 試試這個擴展您的jQuery這樣的:

$(document).ready(function() { 
$('.slide-one').click(function() { 
    $(".slider-panel-wrap").removeClass("slider-wrap-100"); 
    $(".slider-panel-wrap").addClass("slider-wrap-0"); 
}); 
$('.slide-two').click(function() { 
    $(".slider-panel-wrap").removeClass("slider-wrap-0"); 
    $(".slider-panel-wrap").addClass("slider-wrap-100"); 
}); 
}); 

http://jsfiddle.net/PaulvdDool/6PEgu/8/

+0

謝謝你這個快速回復 - 但後來如果我有3張幻燈片,我再次陷入困境。 請參閱:http://jsfiddle.net/6PEgu/14/ 有沒有「聰明」的方式來做到這一點比在jQuery中添加類?所以如果我有10張幻燈片,我的jquery將刪除10個課程或? – implum

+0

那麼爲什麼不使用錨鏈接就像這樣http://jsfiddle.net/PaulvdDool/Uce2x/ –

+0

因爲我將在這個下面有更多的滑塊 - 這基本上將被用作全屏滑塊,然後再添加2-3個喜歡它 - 希望你明白我的意思。我會做你的榜樣,但每個全屏div應該作爲一個滑塊。所以我真的需要在全屏幻燈片中的每個導航。 – implum