大家晚上好!目前,在我正在处理的网站 ( http://bit.ly/1eGCShX ) 上,我已经让它一直向下滚动到每个 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 让事情变得更简单 10 倍!我做了一个简化版本。
http://jsfiddle.net/dylanopet/ADsKH/9/
再次感谢您花时间阅读本文,祝大家度过愉快的一周。
最佳答案
你在哪里
var $prev = $('.currentPanel').prev('.section');
改成
var $prev = $('.section').eq(0);
你告诉函数你想滚动到上一个元素。但是您实际上想滚动到第一个元素。
关于javascript - 滚动到每个div后如何重复ScrollTop函数重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897497/