Scroll to next/previous thread when pressing j/k (fixes #3327)
This commit is contained in:
parent
0d2bf557de
commit
31f9b418ba
1 changed files with 23 additions and 0 deletions
23
js/main.js
23
js/main.js
|
@ -322,6 +322,29 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).keydown(function (event) {
|
||||||
|
var threads = $('.thread_level_1');
|
||||||
|
if ((event.keyCode === 74 || event.keyCode === 75) && !$(event.target).is('textarea, input')) {
|
||||||
|
var scrollTop = $(window).scrollTop();
|
||||||
|
if (event.keyCode === 75) {
|
||||||
|
threads = $(threads.get().reverse());
|
||||||
|
}
|
||||||
|
threads.each(function(key, item) {
|
||||||
|
var comparison;
|
||||||
|
var top = $(item).offset().top - 100;
|
||||||
|
if (event.keyCode === 74) {
|
||||||
|
comparison = top > scrollTop + 1;
|
||||||
|
} else if (event.keyCode === 75) {
|
||||||
|
comparison = top < scrollTop - 1;
|
||||||
|
}
|
||||||
|
if (comparison) {
|
||||||
|
$('html, body').animate({ scrollTop: top }, 200);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Set an event listener for infinite scroll
|
// Set an event listener for infinite scroll
|
||||||
if(typeof infinite_scroll !== 'undefined') {
|
if(typeof infinite_scroll !== 'undefined') {
|
||||||
$(window).scroll(function(e){
|
$(window).scroll(function(e){
|
||||||
|
|
Loading…
Reference in a new issue