Merge pull request #3330 from Rudloff/feature/keypress
Scroll to next/previous thread when pressing j/k (fixes #3327)
This commit is contained in:
commit
879ebb1d7f
2 changed files with 34 additions and 0 deletions
10
doc/KeyboardShortcuts.md
Normal file
10
doc/KeyboardShortcuts.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
Keyboard shortcuts in Friendica
|
||||
=======================
|
||||
|
||||
* [Home](help)
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* j: Scroll to next thread
|
||||
* k: Scroll to previous thread
|
24
js/main.js
24
js/main.js
|
@ -322,6 +322,30 @@
|
|||
}
|
||||
});
|
||||
|
||||
// Scroll to the next/previous thread when pressing J and K
|
||||
$(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
|
||||
if(typeof infinite_scroll !== 'undefined') {
|
||||
$(window).scroll(function(e){
|
||||
|
|
Loading…
Reference in a new issue