我的动画效果很好,但我需要帮助来计算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)
答案 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。