我正在使用一个脚本,它使用键盘键 J 和 K 在我的博客上的文章之间滚动。现在的代码非常混乱,并且有一个错误,它目前只能运行一次......我想知道是否有更简单的方法可以使用 J & K 键在帖子之间平滑滚动,因为这个脚本就是这样大,必须有一个更简单的方法。该脚本使用 jQuery 库和 scrollto.js。基本上,我想要一个不同的脚本,当按下 J & K 键时,它可以在帖子之间平滑滚动。
window.viewport = { height: function() { return $(window).height(); }, width: function() { return $(window).width(); }, scrollTop: function() { return $(window).scrollTop(); }, scrollLeft: function() { return $(window).scrollLeft(); } }; $.belowthefold = function(element, settings) { var fold = $(window).height() + $(window).scrollTop(); return fold <= $(element).offset().top - settings.threshold; }; $.abovethetop = function(element, settings) { var top = $(window).scrollTop(); return top >= $(element).offset().top + $(element).height() - settings.threshold; }; $.rightofscreen = function(element, settings) { var fold = $(window).width() + $(window).scrollLeft(); return fold <= $(element).offset().left - settings.threshold; }; $.leftofscreen = function(element, settings) { var left = $(window).scrollLeft(); return left >= $(element).offset().left + $(element).width() - settings.threshold; }; $.inviewport = function(element, settings) { return !$.rightofscreen(element, settings) && !$.leftofscreen(element, settings) && !$.belowthefold(element, settings) && !$.abovethetop(element, settings); }; $.extend($.expr[':'], { "below-the-fold": function(a, i, m) { return $.belowthefold(a, {threshold : 0}); }, "above-the-top": function(a, i, m) { return $.abovethetop(a, {threshold : 0}); }, "left-of-screen": function(a, i, m) { return $.leftofscreen(a, {threshold : 0}); }, "right-of-screen": function(a, i, m) { return $.rightofscreen(a, {threshold : 0}); }, "in-viewport": function(a, i, m) { return $.inviewport(a, {threshold : 0}); } });
$(document).keypress(function( event ) {
if(event.which === 106) {
var currPost = $('article:in-viewport').eq(0);
var target = $(currPost).next('article');
$.scrollTo( $(target), {
duration: 400,
axis: "y",
offset: -120
});
}
else if(event.which === 107) {
var currPost = $('article:in-viewport').eq(0);
var target = $(currPost).prev('article');
$.scrollTo( $(target), {
duration: 400,
axis: "y",
offset: -120
});
}
});
博客我正在使用脚本 - http://jtestblog1.tumblr.com/ 编辑:偏移量 -120 是这样,当它滚动时,它会显示整篇文章,包括 padding-top。