mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-10-31 12:00:11 +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="magazine.js"></script> | ||||
| <script src="layout.js"></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(){ | ||||
| 	// keyboard... | ||||
| 	$(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