mirror of
https://github.com/flynx/PortableMag.git
synced 2026-01-07 03:01:34 +00:00
some minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
24272ae701
commit
a04d21e132
44
layout.js
44
layout.js
@ -79,6 +79,9 @@ var togglePageView = createCSSClassToggler(
|
|||||||
/************************************************** event handlers ***/
|
/************************************************** event handlers ***/
|
||||||
|
|
||||||
// XXX make this more universal...
|
// XXX make this more universal...
|
||||||
|
// - h/v scroll
|
||||||
|
// - general configuration
|
||||||
|
// - optional events...
|
||||||
// XXX should we use a callback or an event???
|
// XXX should we use a callback or an event???
|
||||||
function makeScrollHandler(root, callback){
|
function makeScrollHandler(root, callback){
|
||||||
|
|
||||||
@ -88,16 +91,37 @@ function makeScrollHandler(root, callback){
|
|||||||
var touches = 0
|
var touches = 0
|
||||||
var start
|
var start
|
||||||
var prev_x
|
var prev_x
|
||||||
|
var prev_y
|
||||||
var prev_t
|
var prev_t
|
||||||
|
var bounds
|
||||||
var shift
|
var shift
|
||||||
var scale
|
var scale
|
||||||
var x
|
var x
|
||||||
|
var y
|
||||||
var t
|
var t
|
||||||
var dx
|
var dx
|
||||||
var dt
|
var dt
|
||||||
|
|
||||||
|
// XXX at this point this is not used...
|
||||||
|
var config = {
|
||||||
|
hScroll: true,
|
||||||
|
vScroll: false,
|
||||||
|
|
||||||
|
enableEvents: false,
|
||||||
|
autoCancelEvents: false,
|
||||||
|
eventBounds: 5,
|
||||||
|
}
|
||||||
|
|
||||||
function startMoveHandler(evt, callback){
|
function startMoveHandler(evt, callback){
|
||||||
prev_t = event.timeStamp || Date.now();
|
prev_t = event.timeStamp || Date.now();
|
||||||
|
if(config.autoCancelEvents){
|
||||||
|
bounds = {
|
||||||
|
left: config.eventBounds,
|
||||||
|
right: root.width() - config.eventBounds,
|
||||||
|
top: config.eventBounds,
|
||||||
|
bottom: root.height() - config.eventBounds
|
||||||
|
}
|
||||||
|
}
|
||||||
setTransitionDuration($('.magazine'), 0)
|
setTransitionDuration($('.magazine'), 0)
|
||||||
if(event.touches != null){
|
if(event.touches != null){
|
||||||
touch = true
|
touch = true
|
||||||
@ -123,10 +147,23 @@ function makeScrollHandler(root, callback){
|
|||||||
// get the user coords...
|
// get the user coords...
|
||||||
x = touch ? event.touches[0].pageX : evt.clientX
|
x = touch ? event.touches[0].pageX : evt.clientX
|
||||||
touches = touch ? event.touches.length : 0
|
touches = touch ? event.touches.length : 0
|
||||||
|
|
||||||
|
// XXX needs testing...
|
||||||
|
if(config.autoCancelEvents){
|
||||||
|
if(config.hScroll && (x <= bounds.left || x >= bounds.right)
|
||||||
|
|| config.vScroll && (y <= bounds.top || y >= bounds.bottom)){
|
||||||
|
// XXX cancel the touch event and trigger the end handler...
|
||||||
|
return endMoveHandler(evt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// do the actual scroll...
|
||||||
if(scrolling){
|
if(scrolling){
|
||||||
shift += x - prev_x
|
shift += x - prev_x
|
||||||
setElementTransform($('.magazine'), shift, scale)
|
setElementTransform($('.magazine'), shift, scale)
|
||||||
}
|
}
|
||||||
|
// XXX these should be done every time the event is caught or
|
||||||
|
// just while scrolling?
|
||||||
dx = x - prev_x
|
dx = x - prev_x
|
||||||
dt = t - prev_t
|
dt = t - prev_t
|
||||||
prev_t = t
|
prev_t = t
|
||||||
@ -165,6 +202,7 @@ function makeScrollHandler(root, callback){
|
|||||||
.on('touchstart', startMoveHandler)
|
.on('touchstart', startMoveHandler)
|
||||||
.on('touchmove', moveHandler)
|
.on('touchmove', moveHandler)
|
||||||
.on('touchend', endMoveHandler)
|
.on('touchend', endMoveHandler)
|
||||||
|
.on('touchcancel', endMoveHandler)
|
||||||
} else {
|
} else {
|
||||||
root
|
root
|
||||||
.on('mousedown', startMoveHandler)
|
.on('mousedown', startMoveHandler)
|
||||||
@ -281,9 +319,8 @@ function setMagazineScale(scale){
|
|||||||
var mag = $('.magazine')
|
var mag = $('.magazine')
|
||||||
var cur = $('.current.page')
|
var cur = $('.current.page')
|
||||||
|
|
||||||
// XXX make this check more unversal...
|
|
||||||
// center-align ribbon view pages...
|
// center-align ribbon view pages...
|
||||||
var align = scale < 1 ? 'center' : null
|
var align = isNavigationViewRelative() ? 'center' : null
|
||||||
|
|
||||||
var left = getMagazineOffset(cur, scale, align)
|
var left = getMagazineOffset(cur, scale, align)
|
||||||
|
|
||||||
@ -311,9 +348,8 @@ function setCurrentPage(n){
|
|||||||
|
|
||||||
var cur = $('.current.page')
|
var cur = $('.current.page')
|
||||||
|
|
||||||
// XXX make this check more unversal...
|
|
||||||
// center-align pages in ribbon view...
|
// center-align pages in ribbon view...
|
||||||
var align = scale < 1 ? 'center' : null
|
var align = isNavigationViewRelative() ? 'center' : null
|
||||||
|
|
||||||
var left = getMagazineOffset(cur, null, align)
|
var left = getMagazineOffset(cur, null, align)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user