mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-10-30 19:40:12 +00:00 
			
		
		
		
	added hash urls -- support page, @name refs and special home, end and thumbnails hash parts...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									35361370be
								
							
						
					
					
						commit
						c2f23d1483
					
				
							
								
								
									
										3
									
								
								TODO.otl
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								TODO.otl
									
									
									
									
									
								
							| @ -1,5 +1,8 @@ | |||||||
| [_] 25% Priority work | [_] 25% Priority work | ||||||
| 	[_] 50% general todo | 	[_] 50% general todo | ||||||
|  | 		[_] BUG: href to existing anchors will mess up layout... | ||||||
|  | 		| need to find out how can we disable anchor links from actually | ||||||
|  | 		| going to the anchor... | ||||||
| 		[_] something made phonegap version unhappy... | 		[_] something made phonegap version unhappy... | ||||||
| 		| likely the URL logic... | 		| likely the URL logic... | ||||||
| 		| | 		| | ||||||
|  | |||||||
							
								
								
									
										35
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								index.html
									
									
									
									
									
								
							| @ -8,10 +8,6 @@ | |||||||
| 
 | 
 | ||||||
| <script src="magazine.js"></script> | <script src="magazine.js"></script> | ||||||
| 
 | 
 | ||||||
| <script> |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| <script> | <script> | ||||||
| 
 | 
 | ||||||
| $(document).ready(function(){ | $(document).ready(function(){ | ||||||
| @ -29,6 +25,7 @@ $(document).ready(function(){ | |||||||
| 		}) | 		}) | ||||||
| 		.bind('hashchange', function(){ | 		.bind('hashchange', function(){ | ||||||
| 			setCurrentPage(loadURLState()) | 			setCurrentPage(loadURLState()) | ||||||
|  | 			return false | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 	$('.viewer') | 	$('.viewer') | ||||||
| @ -46,8 +43,10 @@ $(document).ready(function(){ | |||||||
| 			click: function(evt, elem){ | 			click: function(evt, elem){ | ||||||
| 				if($(elem).hasClass('page')){ | 				if($(elem).hasClass('page')){ | ||||||
| 					setCurrentPage(elem) | 					setCurrentPage(elem) | ||||||
|  | 					//togglePageView('on') | ||||||
| 				} else if($(elem).hasClass('content')){ | 				} else if($(elem).hasClass('content')){ | ||||||
| 					setCurrentPage($(elem).parents('.page').first()) | 					setCurrentPage($(elem).parents('.page').first()) | ||||||
|  | 					//togglePageView('on') | ||||||
| 				} | 				} | ||||||
| 				return true | 				return true | ||||||
| 			} | 			} | ||||||
| @ -100,7 +99,18 @@ $(document).ready(function(){ | |||||||
| 	<div class="magazine"> | 	<div class="magazine"> | ||||||
| 		<div class="cover page current"> | 		<div class="cover page current"> | ||||||
| 			<div class="content"> | 			<div class="content"> | ||||||
| 				Magazine Cover | 				<h1>Magazine Cover</h1> | ||||||
|  | 				<br><br><br> | ||||||
|  | 				<a href="#1">Article 1</a><br> | ||||||
|  | 				<a href="#ArticleAnchorExample">Article 2</a><br> | ||||||
|  | 				<a href="#11">Article 3</a><br> | ||||||
|  | 
 | ||||||
|  | 				<br><br><br> | ||||||
|  | 
 | ||||||
|  | 				<h3>Special anchors</h3> | ||||||
|  | 				<a href="#home">Magazine cover</a><br> | ||||||
|  | 				<a href="#end">Last Page</a><br> | ||||||
|  | 				<a href="#thumbnails">Thumbnail view</a><br> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 
 | 
 | ||||||
| @ -109,7 +119,8 @@ $(document).ready(function(){ | |||||||
| 		<div class="article"> | 		<div class="article"> | ||||||
| 			<div class="cover page"> | 			<div class="cover page"> | ||||||
| 				<div class="content"> | 				<div class="content"> | ||||||
| 					Article Cover<br> | 					<h1>Article Cover</h1> | ||||||
|  | 					<a href="#home">home</a><br> | ||||||
| 					some more text... | 					some more text... | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| @ -135,8 +146,10 @@ $(document).ready(function(){ | |||||||
| 		</div> | 		</div> | ||||||
| 		<div class="article"> | 		<div class="article"> | ||||||
| 			<div class="cover page"> | 			<div class="cover page"> | ||||||
| 				<div class="content"> | 				<div class="content" name="ArticleAnchorExample"> | ||||||
| 					Article Cover | 					<!--a name="ArticleAnchorExample"></a--> | ||||||
|  | 					<h1>Article Cover</h1> | ||||||
|  | 					<a href="#home">home</a><br> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 
 | 
 | ||||||
| @ -169,7 +182,8 @@ $(document).ready(function(){ | |||||||
| 		<div class="article"> | 		<div class="article"> | ||||||
| 			<div class="cover page"> | 			<div class="cover page"> | ||||||
| 				<div class="content"> | 				<div class="content"> | ||||||
| 					Article Cover | 					<h1>Article Cover</h1> | ||||||
|  | 					<a href="#home">home</a><br> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 
 | 
 | ||||||
| @ -195,7 +209,8 @@ $(document).ready(function(){ | |||||||
| 			</div> | 			</div> | ||||||
| 			<div class="page"> | 			<div class="page"> | ||||||
| 				<div class="content"> | 				<div class="content"> | ||||||
| 					Page | 					Page<br> | ||||||
|  | 					<a href="#home">home</a><br> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
|  | |||||||
							
								
								
									
										32
									
								
								magazine.js
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								magazine.js
									
									
									
									
									
								
							| @ -444,26 +444,48 @@ function prevArticle(){ | |||||||
| 
 | 
 | ||||||
| /*********************************************************************/ | /*********************************************************************/ | ||||||
| // XXX make these magazine-specific...
 | // XXX make these magazine-specific...
 | ||||||
|  | // XXX BUG: if the hach url part coresponds to a real anchor the browser 
 | ||||||
|  | // 		shifts the page, need to disable this...
 | ||||||
| // URL state managers...
 | // URL state managers...
 | ||||||
| function loadURLState(){ | function loadURLState(){ | ||||||
| 	if(window.location.hash == ''){ | 	if(window.location.hash == ''){ | ||||||
| 		return null | 		return null | ||||||
| 	} | 	} | ||||||
| 	var n = parseInt(window.location.hash.split('#')[1]) | 	var anchor = window.location.hash.split('#')[1] | ||||||
| 	if(n != null){ | 	var n = parseInt(anchor) | ||||||
|  | 	if(typeof(n) == typeof(1) && n >= 0){ | ||||||
| 		return n | 		return n | ||||||
|  | 	// XXX add real external aliases...
 | ||||||
|  | 	} else if(anchor == 'thumbnails') { | ||||||
|  | 		togglePageView('off') | ||||||
|  | 		return getPageNumber() | ||||||
|  | 	} else if(anchor == 'home') { | ||||||
|  | 		return 0 | ||||||
|  | 	} else if(anchor == 'end') { | ||||||
|  | 		return $('.page').length-1 | ||||||
| 	} else { | 	} else { | ||||||
| 		alert('textual anchors not yet supported...') | 		return getPageNumber($('[name='+anchor+']').parents('.page')) | ||||||
| 		return |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| function saveURLState(){ | function saveURLState(){ | ||||||
|  | 	var anchor = window.location.hash.split('#')[1] | ||||||
|  | 	var page = $('[name='+anchor+']') | ||||||
|  | 	if(!page.hasClass('page')){ | ||||||
|  | 		page = page.parents('.page') | ||||||
|  | 	} | ||||||
|  | 	var n = getPageNumber() | ||||||
|  | 	// XXX use real aliases...
 | ||||||
|  | 	if(n == getPageNumber(page) | ||||||
|  | 			|| (anchor == 'home' && n == 0) | ||||||
|  | 			|| (anchor == 'end' && n == $('.page').length-1)){ | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
| 	window.location.hash = getPageNumber() | 	window.location.hash = getPageNumber() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // local storage state managers...
 | // local storage state managers...
 | ||||||
| function loadStorageState(){ | function loadStorageState(){ | ||||||
| 	return parseInt($.jStorage.get('current_page'), 0) | 	return parseInt($.jStorage.get('current_page', 0)) | ||||||
| } | } | ||||||
| function saveStorageState(){ | function saveStorageState(){ | ||||||
| 	$.jStorage.set('current_page', getPageNumber()) | 	$.jStorage.set('current_page', getPageNumber()) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user