2013-05-29 116 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