mirror of
https://github.com/flynx/PortableMag.git
synced 2025-10-29 19:20:09 +00:00
experementing with scroll on layout.html (magazine scaling over 1 will break the scrolling -- element is bigger than the scroll area)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
cbfdf94625
commit
3ce208b6c4
@ -22,10 +22,12 @@
|
|||||||
z-index: 9000;
|
z-index: 9000;
|
||||||
box-shadow: 10px 10px 150px -50px black;
|
box-shadow: 10px 10px 150px -50px black;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
.page:hover {
|
.page:hover {
|
||||||
z-index: 9000;
|
z-index: 9000;
|
||||||
box-shadow: 10px 10px 150px 0px black;
|
box-shadow: 10px 10px 150px 0px black;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
-webkit-transition: none;
|
-webkit-transition: none;
|
||||||
@ -84,6 +86,8 @@ $(document).ready(function(){
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="viewer">
|
<div class="viewer">
|
||||||
|
<!--div class="_scaler">
|
||||||
|
<div class="_aligner"-->
|
||||||
|
|
||||||
<div class="magazine" name="PortableMag">
|
<div class="magazine" name="PortableMag">
|
||||||
<div class="cover page">
|
<div class="cover page">
|
||||||
@ -435,6 +439,11 @@ $(document).ready(function(){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!--/div>
|
||||||
|
</div-->
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<!-- vim:set ts=4 sw=4 nowrap : -->
|
<!-- vim:set ts=4 sw=4 nowrap : -->
|
||||||
|
|||||||
51
layout.js
51
layout.js
@ -4,6 +4,12 @@
|
|||||||
*
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
var NAVIGATE_RELATIVE_TO_VISIBLE = false
|
||||||
|
|
||||||
|
var USE_PAGE_ALIGN = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************** layout ***/
|
/********************************************************** layout ***/
|
||||||
|
|
||||||
var togglePageFitMode = createCSSClassToggler(
|
var togglePageFitMode = createCSSClassToggler(
|
||||||
@ -13,7 +19,8 @@ var togglePageFitMode = createCSSClassToggler(
|
|||||||
if(action == 'on'){
|
if(action == 'on'){
|
||||||
console.log('fitting pages to view...')
|
console.log('fitting pages to view...')
|
||||||
var n = getPageNumber()
|
var n = getPageNumber()
|
||||||
$('.page:not(.no-resize)').width($('.viewer').width())
|
var scale = getElementScale($('.magazine'))
|
||||||
|
$('.page:not(.no-resize)').width($('.viewer').width()/scale)
|
||||||
setCurrentPage(n)
|
setCurrentPage(n)
|
||||||
} else {
|
} else {
|
||||||
console.log('restoring page sizes...')
|
console.log('restoring page sizes...')
|
||||||
@ -31,18 +38,22 @@ function getPageNumber(page){
|
|||||||
if(page != null){
|
if(page != null){
|
||||||
return $('.page').index($(page))
|
return $('.page').index($(page))
|
||||||
}
|
}
|
||||||
|
if(!NAVIGATE_RELATIVE_TO_VISIBLE){
|
||||||
var s = $('.viewer').scrollLeft()
|
return $('.page').index($('.current.page'))
|
||||||
var W = $('.viewer').width()
|
} else {
|
||||||
var cur = -1
|
var s = $('.viewer').scrollLeft()
|
||||||
var res = $('.page').map(function(i, e){
|
var W = $('.viewer').width()
|
||||||
e = $(e)
|
var scale = getElementScale($('.magazine'))
|
||||||
var l = e.position().left
|
var cur = -1
|
||||||
var w = e.width()
|
var res = $('.page').map(function(i, e){
|
||||||
return Math.abs((l+(w/2)) - (s+(W/2)))
|
e = $(e)
|
||||||
})
|
var l = e.position().left
|
||||||
cur = res.index(Math.min.apply(Math, res))
|
var w = e.width()*scale
|
||||||
return cur
|
return Math.abs((l+(w/2)) - (s+(W/2)))
|
||||||
|
})
|
||||||
|
cur = res.index(Math.min.apply(Math, res))
|
||||||
|
return cur
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -53,6 +64,7 @@ function setCurrentPage(n){
|
|||||||
if(n == null){
|
if(n == null){
|
||||||
n = getPageNumber()
|
n = getPageNumber()
|
||||||
}
|
}
|
||||||
|
var scale = getElementScale($('.magazine'))
|
||||||
var l = $('.page').length
|
var l = $('.page').length
|
||||||
n = n < 0 ? l - n : n
|
n = n < 0 ? l - n : n
|
||||||
n = n < -l ? 0 : n
|
n = n < -l ? 0 : n
|
||||||
@ -60,7 +72,18 @@ function setCurrentPage(n){
|
|||||||
$('.current.page').removeClass('current')
|
$('.current.page').removeClass('current')
|
||||||
$($('.page')[n]).addClass('current')
|
$($('.page')[n]).addClass('current')
|
||||||
var cur = $('.current.page')
|
var cur = $('.current.page')
|
||||||
var offset = $('.viewer').width()/2 - cur.width()/2
|
if(USE_PAGE_ALIGN){
|
||||||
|
var align = getPageAlign()
|
||||||
|
} else {
|
||||||
|
var align = 'center'
|
||||||
|
}
|
||||||
|
if(align == 'left'){
|
||||||
|
var offset = 0
|
||||||
|
} else if(align == 'right'){
|
||||||
|
var offset = $('.viewer').width() - cur.width()*scale
|
||||||
|
} else {
|
||||||
|
var offset = $('.viewer').width()/2 - (cur.width()/2)*scale
|
||||||
|
}
|
||||||
cur.ScrollTo({
|
cur.ScrollTo({
|
||||||
offsetLeft: offset
|
offsetLeft: offset
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user