1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-03 14:59:18 +02:00
epub.js/reader/controllers/reader_controller.js
2014-03-14 18:50:28 -07:00

113 lines
No EOL
2.2 KiB
JavaScript

EPUBJS.reader.ReaderController = function(book) {
var $main = $("#main"),
$divider = $("#divider"),
$loader = $("#loader"),
$next = $("#next"),
$prev = $("#prev");
var reader = this;
var book = this.book;
var slideIn = function() {
var currentPosition = book.getCurrentLocationCfi();
if (reader.settings.sidebarReflow){
$main.removeClass('single');
$main.one("transitionend", function(){
book.gotoCfi(currentPosition);
});
} else {
$main.removeClass("closed");
}
};
var slideOut = function() {
var currentPosition = book.getCurrentLocationCfi();
if (reader.settings.sidebarReflow){
$main.addClass('single');
$main.one("transitionend", function(){
book.gotoCfi(currentPosition);
});
} else {
$main.addClass("closed");
}
};
var showLoader = function() {
$loader.show();
hideDivider();
};
var hideLoader = function() {
$loader.hide();
//-- If the book is using spreads, show the divider
// if(book.settings.spreads) {
// showDivider();
// }
};
var showDivider = function() {
$divider.addClass("show");
};
var hideDivider = function() {
$divider.removeClass("show");
};
var keylock = false;
var arrowKeys = function(e) {
if(e.keyCode == 37) {
book.prevPage();
$prev.addClass("active");
keylock = true;
setTimeout(function(){
keylock = false;
$prev.removeClass("active");
}, 100);
e.preventDefault();
}
if(e.keyCode == 39) {
book.nextPage();
$next.addClass("active");
keylock = true;
setTimeout(function(){
keylock = false;
$next.removeClass("active");
}, 100);
e.preventDefault();
}
}
document.addEventListener('keydown', arrowKeys, false);
$next.on("click", function(e){
book.nextPage();
e.preventDefault();
});
$prev.on("click", function(e){
book.prevPage();
e.preventDefault();
});
book.on("renderer:spreads", function(bool){
if(bool) {
showDivider();
} else {
hideDivider();
}
});
return {
"slideOut" : slideOut,
"slideIn" : slideIn,
"showLoader" : showLoader,
"hideLoader" : hideLoader,
"showDivider" : showDivider,
"hideDivider" : hideDivider,
"arrowKeys" : arrowKeys
};
};