|
|
@@ -21,6 +21,7 @@
|
|
|
var toc = []; // Table of contents as a list
|
|
|
var content; // Channel variable with content
|
|
|
var nameCounter = 0;
|
|
|
+ var keyState = 0;
|
|
|
|
|
|
renderer.heading = function (text, level) {
|
|
|
// Use number to avoid issues with Chinese
|
|
|
@@ -180,6 +181,83 @@
|
|
|
content.setHeader(curHeader);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ document.onkeydown = function(e) {
|
|
|
+ e = e || window.event;
|
|
|
+ var key;
|
|
|
+ var shift;
|
|
|
+ var ctrl;
|
|
|
+ if (e.which) {
|
|
|
+ key = e.which;
|
|
|
+ } else {
|
|
|
+ key = e.keyCode;
|
|
|
+ }
|
|
|
+ shift = !!e.shiftKey;
|
|
|
+ ctrl = !!e.ctrlKey;
|
|
|
+ switch (key) {
|
|
|
+ case 74: // J
|
|
|
+ window.scrollBy(0, 100);
|
|
|
+ keyState = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 75: // K
|
|
|
+ window.scrollBy(0, -100);
|
|
|
+ keyState = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 72: // H
|
|
|
+ window.scrollBy(-100, 0);
|
|
|
+ keyState = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 76: // L
|
|
|
+ window.scrollBy(100, 0);
|
|
|
+ keyState = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 71: // G
|
|
|
+ if (shift) {
|
|
|
+ var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;
|
|
|
+ var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
|
|
|
+ window.scrollTo(scrollLeft, scrollHeight);
|
|
|
+ keyState = 0;
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ if (keyState == 0) {
|
|
|
+ keyState = 1;
|
|
|
+ } else if (keyState == 1) {
|
|
|
+ keyState = 0;
|
|
|
+ var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;
|
|
|
+ window.scrollTo(scrollLeft, 0);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+
|
|
|
+ case 85: // U
|
|
|
+ keyState = 0;
|
|
|
+ if (ctrl) {
|
|
|
+ var clientHeight = document.documentElement.clientHeight;
|
|
|
+ window.scrollBy(0, -clientHeight);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+
|
|
|
+ case 68: // D
|
|
|
+ keyState = 0;
|
|
|
+ if (ctrl) {
|
|
|
+ var clientHeight = document.documentElement.clientHeight;
|
|
|
+ window.scrollBy(0, clientHeight);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+
|
|
|
+ default:
|
|
|
+ keyState = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ e.preventDefault();
|
|
|
+ }
|
|
|
</script>
|
|
|
</body>
|
|
|
</html>
|