大家晚上好!目前,在我正在处理的网站(http://bit.ly/1eGCShX)上,我已经让它向下滚动到每个div,但是在你完成并再次点击最后一个div之后,它没有不要一直向后滚动到顶部(而不是前一个div),这就是我想要完成的。
然而,我需要它再次重复以从第一个div开始,因为如果你完成一次并向上滚动以再次单击第一个,它会在它停止的地方闪烁。我已经搞砸了一段时间而无法得到它。任何帮助友好赞赏!这是我的JS;
$('div.section').first();
$('a.display').on('click', function(e) {
e.preventDefault();
var t = $(this).text(),
that = $(this);
if ($('.currentPanel').next('div.section').length > 0) {
var $next = $('.currentPanel').next('.section');
var top = $next.offset().top;
$('.currentPanel').removeClass('currentPanel');
$(function () {
$next.addClass('currentPanel');
$('html, body').animate({scrollTop: $('.currentPanel').offset().top }, 'slow');
});
} else if ($('.currentPanel').prev('div.section').length > 0) {
var $prev = $('.currentPanel').prev('.section');
var top = $prev.offset().top;
$('.currentPanel').removeClass('currentPanel');
$(function () {
$prev.addClass('currentPanel');
$('html, body').animate({scrollTop: $('.currentPanel').offset().top }, 'slow');
});of
}
});
当然,JSFiddle使x10更容易!我做了一个简化的版本。
http://jsfiddle.net/dylanopet/ADsKH/9/
再次,感谢您抽出宝贵时间阅读本文并祝愿大家都感到满意。
答案 0 :(得分:3)
你在哪里
var $prev = $('.currentPanel').prev('.section');
将其更改为
var $prev = $('.section').eq(0);
您告诉要滚动到上一个元素的函数。但实际上你想滚动到第一个元素。