2013-10-01 243 views
0

我有一个非常好的工作滑块,但我需要稍微改变导航工作方式的行为。JQuery滑块导航行为

在第一张幻灯片上,我希望只有右侧/下一个选项可用,第二/第三/第四个等有左右两个,或者下一个和上一个可用。一旦你到达结束幻灯片,下一个或右侧选项被隐藏,因此它不会循环。

这是我的脚本。

jQuery(document).ready(function ($) { 

    $('#checkbox').change(function(){ 
    setInterval(function() { 
     moveRight(); 
    }, 3000); 
    }); 

    var slideCount = $('#slider ul li').length; 
    var slideWidth = $('#slider ul li').width(); 
    var slideHeight = $('#slider ul li').height(); 
    var sliderUlWidth = slideCount * slideWidth; 

    $('#slider').css({ width: slideWidth, height: slideHeight }); 

    $('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth }); 

    $('#slider ul li:last-child').prependTo('#slider ul'); 

    function moveLeft() { 
     $('#slider ul').animate({ 
      left: + slideWidth 
     }, 200, function() { 
      $('#slider ul li:last-child').prependTo('#slider ul'); 
      $('#slider ul').css('left', ''); 
     }); 
    }; 

    function moveRight() { 
     $('#slider ul').animate({ 
      left: - slideWidth 
     }, 200, function() { 
      $('#slider ul li:first-child').appendTo('#slider ul'); 
      $('#slider ul').css('left', ''); 
     }); 
    }; 

    $('a.control_prev').click(function() { 
     moveLeft(); 
    }); 

    $('a.control_next').click(function() { 
     moveRight(); 
    }); 

});

回答

0

在moveLeft和moveRight函数中,您可以检查$('#slider ul')。attr(“left”)属性。如果它是0,则等于($('#slider ul')。attr(“width”) - ($('#slider ul li')。attr(“width”)))在最后。

+0

对不起,我似乎不明白,你可以采取一个部分,粘贴到我attr会去哪里? –

+0

您提供的答案还没有解决问题... –

0
function moveLeft() { 
    if($('#slider ul').position().left > 0){ 
    $('#slider ul').animate({ 
     left: + slideWidth 
    }, 200, function() { 
     $('#slider ul li:last-child').prependTo('#slider ul'); 
     $('#slider ul').css('left', ''); 
    }); 
    } 
}; 
function moveRight() { 
    if($('#slider ul').position().left < (sliderUlWidth - slideWidth)){ 
    $('#slider ul').animate({ 
     left: + slideWidth 
    }, 200, function() { 
     $('#slider ul li:last-child').prependTo('#slider ul'); 
     $('#slider ul').css('left', ''); 
    }); 
    } 
}; 
+0

我没有看到$('#slider ul')。css('left','');和前线。 –

+0

你为什么不离开那个幻灯片并留在他们的位置,只有动画的ul定位? –

+0

我只是用左/上和右/下来了解我想要达到的目标。这些按钮仅仅是导航按钮。我尝试了代码建议,它确实改变了行为,但混淆了一切。 –