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
|
// 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