mirror of
https://github.com/flynx/PortableMag.git
synced 2025-10-29 19:20:09 +00:00
split off the layout control code into layout.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
d24702e0d7
commit
5660eb26d0
74
layout.html
74
layout.html
@ -43,82 +43,10 @@
|
|||||||
<script src="lib/jli.js"></script>
|
<script src="lib/jli.js"></script>
|
||||||
|
|
||||||
<script src="magazine.js"></script>
|
<script src="magazine.js"></script>
|
||||||
|
<script src="layout.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
function getPageNumber(page){
|
|
||||||
if(page != null){
|
|
||||||
return $('.page').index($(page))
|
|
||||||
} else {
|
|
||||||
var s = $('.viewer').scrollLeft()
|
|
||||||
var W = $('.viewer').width()
|
|
||||||
var cur = -1
|
|
||||||
var res = $('.page').map(function(i, e){
|
|
||||||
e = $(e)
|
|
||||||
var l = e.position().left
|
|
||||||
var w = e.width()
|
|
||||||
return Math.abs((l+(w/2)) - (s+(W/2)))
|
|
||||||
})
|
|
||||||
cur = res.index(Math.min.apply(Math, res))
|
|
||||||
return cur
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function setCurrentPage(n){
|
|
||||||
if(n == null){
|
|
||||||
n = getPageNumber()
|
|
||||||
}
|
|
||||||
var l = $('.page').length
|
|
||||||
n = n < 0 ? l - n : n
|
|
||||||
n = n < -l ? 0 : n
|
|
||||||
n = n >= l ? l - 1 : n
|
|
||||||
$('.current.page').removeClass('current')
|
|
||||||
$($('.page')[n]).addClass('current')
|
|
||||||
var cur = $('.current.page')
|
|
||||||
var offset = $('.viewer').width()/2 - cur.width()/2
|
|
||||||
cur.ScrollTo({
|
|
||||||
offsetLeft: offset
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function nextPage(){
|
|
||||||
setCurrentPage(getPageNumber()+1)
|
|
||||||
}
|
|
||||||
function prevPage(){
|
|
||||||
var n = getPageNumber()-1
|
|
||||||
n = n < 0 ? 0 : n
|
|
||||||
setCurrentPage(n)
|
|
||||||
}
|
|
||||||
function firstPage(){
|
|
||||||
setCurrentPage(0)
|
|
||||||
}
|
|
||||||
function lastPage(){
|
|
||||||
setCurrentPage(-1)
|
|
||||||
}
|
|
||||||
|
|
||||||
var togglePageFitMode = createCSSClassToggler(
|
|
||||||
'.viewer',
|
|
||||||
'.page-fit-to-viewer',
|
|
||||||
function(action){
|
|
||||||
if(action == 'on'){
|
|
||||||
console.log('fitting pages to view...')
|
|
||||||
fitPagesToView()
|
|
||||||
} else {
|
|
||||||
console.log('restoring page sizes...')
|
|
||||||
restorePageSizes()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
function fitPagesToView(){
|
|
||||||
var n = getPageNumber()
|
|
||||||
$('.page:not(.no-resize)').width($('.viewer').width())
|
|
||||||
setCurrentPage(n)
|
|
||||||
}
|
|
||||||
function restorePageSizes(){
|
|
||||||
var n = getPageNumber()
|
|
||||||
$('.page:not(.no-resize)').width('')
|
|
||||||
setCurrentPage(n)
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
// keyboard...
|
// keyboard...
|
||||||
$(document)
|
$(document)
|
||||||
|
|||||||
90
layout.js
Executable file
90
layout.js
Executable file
@ -0,0 +1,90 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
*
|
||||||
|
* XXX add copyright and licence info...
|
||||||
|
*
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
/********************************************************** layout ***/
|
||||||
|
|
||||||
|
var togglePageFitMode = createCSSClassToggler(
|
||||||
|
'.viewer',
|
||||||
|
'.page-fit-to-viewer',
|
||||||
|
function(action){
|
||||||
|
if(action == 'on'){
|
||||||
|
console.log('fitting pages to view...')
|
||||||
|
var n = getPageNumber()
|
||||||
|
$('.page:not(.no-resize)').width($('.viewer').width())
|
||||||
|
setCurrentPage(n)
|
||||||
|
} else {
|
||||||
|
console.log('restoring page sizes...')
|
||||||
|
var n = getPageNumber()
|
||||||
|
$('.page:not(.no-resize)').width('')
|
||||||
|
setCurrentPage(n)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************* helpers ***/
|
||||||
|
|
||||||
|
function getPageNumber(page){
|
||||||
|
if(page != null){
|
||||||
|
return $('.page').index($(page))
|
||||||
|
}
|
||||||
|
|
||||||
|
var s = $('.viewer').scrollLeft()
|
||||||
|
var W = $('.viewer').width()
|
||||||
|
var cur = -1
|
||||||
|
var res = $('.page').map(function(i, e){
|
||||||
|
e = $(e)
|
||||||
|
var l = e.position().left
|
||||||
|
var w = e.width()
|
||||||
|
return Math.abs((l+(w/2)) - (s+(W/2)))
|
||||||
|
})
|
||||||
|
cur = res.index(Math.min.apply(Math, res))
|
||||||
|
return cur
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************* actions ***/
|
||||||
|
|
||||||
|
function setCurrentPage(n){
|
||||||
|
if(n == null){
|
||||||
|
n = getPageNumber()
|
||||||
|
}
|
||||||
|
var l = $('.page').length
|
||||||
|
n = n < 0 ? l - n : n
|
||||||
|
n = n < -l ? 0 : n
|
||||||
|
n = n >= l ? l - 1 : n
|
||||||
|
$('.current.page').removeClass('current')
|
||||||
|
$($('.page')[n]).addClass('current')
|
||||||
|
var cur = $('.current.page')
|
||||||
|
var offset = $('.viewer').width()/2 - cur.width()/2
|
||||||
|
cur.ScrollTo({
|
||||||
|
offsetLeft: offset
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function nextPage(){
|
||||||
|
setCurrentPage(getPageNumber()+1)
|
||||||
|
}
|
||||||
|
function prevPage(){
|
||||||
|
var n = getPageNumber()-1
|
||||||
|
n = n < 0 ? 0 : n
|
||||||
|
setCurrentPage(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function firstPage(){
|
||||||
|
setCurrentPage(0)
|
||||||
|
}
|
||||||
|
function lastPage(){
|
||||||
|
setCurrentPage(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************/
|
||||||
|
// vim:set ts=4 sw=4 :
|
||||||
Loading…
x
Reference in New Issue
Block a user