滑块上的jQuery + css3过渡

时间:2013-08-23 15:35:24

标签: jquery css3 css-transitions translate-animation

我的动画效果很好,但我需要帮助来计算translateX的正确像素。

Currenltly仅计算.next .prev

上的第一次点击
$('.prev').click(function(e) {
    e.preventDefault();
    var idx = $('.wrap.fadeIn').addClass('fadeout').removeClass('fadeIn').css("transform", "translateX(" + $(this).index() * 160 + "px)").index() - 1;
    $('.wrap').eq(idx).addClass('fadeIn').removeClass('fadeout').css("transform", "translateX(" + $(this).index() * -0 + "px)");
    updateNav();
});

$('.next').click(function(e) {
    e.preventDefault();
    var idx = $('.wrap.fadeIn').addClass('fadeout').removeClass('fadeIn').css("transform", "translateX(" + $(this).index() * -160 + "px)").index() + 1;
    $('.wrap').eq(idx).addClass('fadeIn').removeClass('fadeout').css("transform", "translateX(" + $(this).index() * -160 + "px)");
    updateNav();
});

http://jsfiddle.net/JQq5n/462/(firefox)

1 个答案:

答案 0 :(得分:0)

首先,

您的索引错误$(this)指的是$('。prev')/ $('。next')

  
    

var idx = $('。wrap.fadeIn')。addClass('fadeout')。removeClass('fadeIn')。css(“transform”,“translateX(”+ $(this).index()* 160 +“px)”)。index() - 1;

  

一旦我把它整理出来 - 我用溢出来查看你的.container:滚动

第四个.wrap被包裹到下一行。

增加ul的宽度解决了这个问题。

  
    

ul {宽度:1300px; }

  

我还发现单位偏移为320px(.container的宽度)

最后 - 我们现在在一行中有.wraps,还有正确的索引值和正确的偏移量

将上述值汇总为

$('.prev').click(function (e) {
    e.preventDefault();
    var idx = $('.wrap.fadeIn').index() - 1;
    $('.wrap.fadeIn').addClass('fadeout').removeClass('fadeIn')
        .css("transform","translateX(" + 320 * idx + "px)").index() - 1;
    $('.wrap').eq(idx).addClass('fadeIn').removeClass('fadeout')
        .css("transform", "translateX(" + -320 * idx + "px)");
    updateNav();
});

$('.next').click(function (e) {
    e.preventDefault();
    var idx = $('.wrap.fadeIn').index() + 1;
    $('.wrap.fadeIn').addClass('fadeout').removeClass('fadeIn')
        .css("transform", "translateX(" + -320 * idx + "px)").index() + 1;
    $('.wrap').eq(idx).addClass('fadeIn').removeClass('fadeout')
        .css("transform", "translateX(" + -320 * idx + "px)");
    updateNav();
});

我能够实现功能functional state

我不喜欢后续.wraps延迟造成的空白区域,所以我根据索引调整了转换,得到了this