mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-11-03 21:40:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			183 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
<html>
 | 
						|
<head>
 | 
						|
<title>Magazine</title>
 | 
						|
<link rel="stylesheet" href="magazine.css">
 | 
						|
<script src="jquery.js"></script>
 | 
						|
<script src="jquery.touchSwipe.js"></script>
 | 
						|
<script>
 | 
						|
 | 
						|
$(document).ready(function(){
 | 
						|
	$('.viewer')
 | 
						|
		.swipe({
 | 
						|
			/* for some reason these do not work within pages... */
 | 
						|
			swipeLeft: nextPage,
 | 
						|
			swipeRight: prevPage,
 | 
						|
			swipeUp: function(){fitNPages(6)},
 | 
						|
			swipeDown: function(){fitNPages(1)},
 | 
						|
			click: function(evt, elem){
 | 
						|
				if($(elem).hasClass('page')){
 | 
						|
					var pages = $('.page')
 | 
						|
					setCurrentPage(pages.index(elem))
 | 
						|
				}
 | 
						|
				return true
 | 
						|
			}
 | 
						|
		})
 | 
						|
})
 | 
						|
 | 
						|
function setCurrentPage(n){
 | 
						|
	var pages = $('.page')
 | 
						|
	var cur = $(pages[n])
 | 
						|
 | 
						|
	$('.current.page').removeClass('current')
 | 
						|
	cur.addClass('current')
 | 
						|
 | 
						|
	$('.magazine').css({left: -n*pages.width()})
 | 
						|
 | 
						|
	return cur
 | 
						|
}
 | 
						|
 | 
						|
function nextPage(){
 | 
						|
	var pages = $('.page')
 | 
						|
	var cur = $('.current.page')
 | 
						|
	return setCurrentPage(Math.min(pages.index(cur)+1, pages.length-1))
 | 
						|
}
 | 
						|
 | 
						|
function prevPage(){
 | 
						|
	var pages = $('.page')
 | 
						|
	var cur = $('.current.page')
 | 
						|
	return setCurrentPage(Math.max(pages.index(cur)-1, 0))
 | 
						|
}
 | 
						|
 | 
						|
function setElementScale(elem, scale){
 | 
						|
	return elem.css({
 | 
						|
		'transform': 'scale('+scale+')',
 | 
						|
		'-moz-transform': 'scale('+scale+')',
 | 
						|
		'-o-transform': 'scale('+scale+')',
 | 
						|
		'-ms-transform': 'scale('+scale+')',
 | 
						|
		'-webkit-transform': 'scale('+scale+')',
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
function fitNPages(n){
 | 
						|
	if(n==null){
 | 
						|
		n = 1
 | 
						|
	}
 | 
						|
	var pages = $('.page')
 | 
						|
	var scale = $('.viewer').width()/(pages.width()*n)
 | 
						|
 | 
						|
	setElementScale($('.scaler'), scale)
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// XXX create magazine...
 | 
						|
function createMagazine(){
 | 
						|
}
 | 
						|
 | 
						|
// XXX create article (magazine, title, position)...
 | 
						|
function createArticle(magazine, title){
 | 
						|
}
 | 
						|
 | 
						|
// XXX create page (article, template, position)...
 | 
						|
function createPage(article, template){
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
</script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
<div class="viewer">
 | 
						|
<div class="scaler">
 | 
						|
<div class="aligner">
 | 
						|
	<div class="magazine">
 | 
						|
		<div class="cover page current">
 | 
						|
			Magazine Cover
 | 
						|
		</div>
 | 
						|
 | 
						|
		<!-- XXX do we need a Magazine Credits page??? -->
 | 
						|
 | 
						|
		<div class="article">
 | 
						|
			<div class="cover page">
 | 
						|
				Article Cover<br>
 | 
						|
				some more text...
 | 
						|
			</div>
 | 
						|
 | 
						|
			<!-- XXX do we need an Article Credits page??? -->
 | 
						|
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
		<div class="article">
 | 
						|
			<div class="cover page">
 | 
						|
				Article Cover
 | 
						|
			</div>
 | 
						|
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
		<div class="article">
 | 
						|
			<div class="cover page">
 | 
						|
				Article Cover
 | 
						|
			</div>
 | 
						|
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
		<div class="article">
 | 
						|
			<div class="cover page">
 | 
						|
				Article Cover
 | 
						|
			</div>
 | 
						|
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
			<div class="page">
 | 
						|
				Page
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 |