mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
213 lines
4.8 KiB
HTML
Executable File
213 lines
4.8 KiB
HTML
Executable File
<html>
|
|
<head>
|
|
<link rel="stylesheet" href="transitions.css">
|
|
<link rel="stylesheet" href="gallery.css">
|
|
<!-- this must come after the transitions.css to work correctly -->
|
|
<link rel="stylesheet" href="single-image-mode.css">
|
|
|
|
<link rel="stylesheet" href="markers.css">
|
|
|
|
<style>
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
|
|
.viewer {
|
|
position: absolute;
|
|
top: 0px;
|
|
left: 0px;
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0px;
|
|
}
|
|
|
|
</style>
|
|
|
|
|
|
<script src="jquery.js"></script>
|
|
<script src="jquery-ui-1.8.22.custom.min.js"></script>
|
|
<script src="jstorage.js"></script>
|
|
|
|
<script src="jquery.touchSwipe.js"></script>
|
|
|
|
<!-- XXX STUB -->
|
|
<script src="images.js"></script>
|
|
<script src="gallery-prototype.js"></script>
|
|
<script src="persistance.js"></script>
|
|
|
|
<script src="markers.js"></script>
|
|
|
|
<!-- keep this after anything it uses -->
|
|
<script src="keybindings.js"></script>
|
|
|
|
|
|
<!--script src="gallery.js"></script-->
|
|
|
|
<script>
|
|
|
|
|
|
// XXX stub DnD handlers...
|
|
$(document)
|
|
.bind('dragover', function(e){
|
|
e.stopPropagation()
|
|
e.preventDefault()
|
|
// XXX is there a jQuery way out of this??
|
|
e.originalEvent.dataTransfer.dropEffect = 'copy' // Explicitly show this is a copy.
|
|
|
|
overlayMessage('Drop files anywhere on the the screen...')
|
|
})
|
|
.bind('drop', function(e){
|
|
e.stopPropagation()
|
|
e.preventDefault()
|
|
|
|
// XXX is there a jQuery way out of this??
|
|
var files = e.originalEvent.dataTransfer.files
|
|
|
|
// XXX should we be using the loadJSON here???
|
|
// XXX desperatly need image caching and preview generation...
|
|
|
|
$('.field').children('.ribbon').remove()
|
|
var ribbon = $('<div class="ribbon"></div>')
|
|
.appendTo($('.field'))
|
|
|
|
for (var i = 0, f; f = files[i]; i++) {
|
|
|
|
if (!f.type.match('image.*')) {
|
|
continue
|
|
}
|
|
|
|
var reader = new FileReader()
|
|
reader.onload = function(i, ribbon){
|
|
return function(e){
|
|
// XXX need to avoid data URLs here and use plain old paths...
|
|
ribbon.append(makeImage(e.target.result, i))
|
|
$('.image').first().click()
|
|
// XXX really UGLY and bad...
|
|
ImageGrid.image_data = buildJSON()
|
|
}
|
|
}(i, ribbon)
|
|
reader.readAsDataURL(f)
|
|
}
|
|
|
|
$('.image').first().click()
|
|
|
|
$('.overlay').click()
|
|
|
|
})
|
|
|
|
|
|
|
|
function setup(){
|
|
// XXX load state...
|
|
// initial state (default)...
|
|
setDefaultInitialState()
|
|
|
|
// XXX
|
|
ImageGrid.toggleSingleImageMode('off')
|
|
ImageGrid.toggleTransitions('on')
|
|
|
|
// setup event handlers...
|
|
setupEvents()
|
|
setupControlElements()
|
|
|
|
// XXX
|
|
//fieldSize(800, 500)
|
|
|
|
// load images...
|
|
// XXX not allowed...
|
|
//$.getJSON('images.js', loadImages})
|
|
|
|
ImageGrid.load(null, image_list)
|
|
|
|
// set the default position and init...
|
|
$('.current.image').click()
|
|
|
|
// XXX get the timing right
|
|
// XXX fire this when all is done, via an event...
|
|
$('.splash').delay(500).fadeOut(700)
|
|
}
|
|
$(document).ready(setup);
|
|
|
|
|
|
|
|
</script>
|
|
|
|
<style>
|
|
</style>
|
|
|
|
</head>
|
|
<body>
|
|
<div class="viewer no-single-image-transitions">
|
|
|
|
<!-- Splash screen -->
|
|
<div class="splash">
|
|
<!-- XXX replace this with a background-image logo... -->
|
|
<table width="100%" height="100%"><tr><td align="center" valign="middle">
|
|
<big><b>ImageGrid</b></big><br>
|
|
<small><i>loading...</i></small>
|
|
</td></tr></table>
|
|
</div>
|
|
|
|
<!-- overlay -->
|
|
<div class="overlay noSwipe">
|
|
<div class="background">
|
|
</div>
|
|
<div class="content">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- info display -->
|
|
<div class="info">
|
|
<div class="top-left"></div>
|
|
<div class="top-right"></div>
|
|
<div class="bottom-left"></div>
|
|
<div class="bottom-right"></div>
|
|
</div>
|
|
|
|
<!-- button bars -->
|
|
<div class="controller-mini left">
|
|
<div class="screen-button show-controls">*</div>
|
|
<div class="screen-button"></div>
|
|
</div>
|
|
<div class="controller left">
|
|
<div class="screen-button demote">^</div>
|
|
<div class="screen-button prev-image"><</div>
|
|
<div class="screen-button promote">v</div>
|
|
<div class="screen-button toggle-single">[ ]</div>
|
|
<div class="screen-button fit-three">ooo</div>
|
|
<div class="screen-button settings">?</div>
|
|
</div>
|
|
|
|
<!-- image container -->
|
|
<div class="container">
|
|
<div class="field">
|
|
<div class="current-indicator">
|
|
<div></div>
|
|
</div>
|
|
<div class="ribbon">
|
|
</div>
|
|
</div>
|
|
<div class="h-marker"></div>
|
|
<div class="v-marker"></div>
|
|
</div>
|
|
<div class="controller-mini right">
|
|
<div class="screen-button settings">?</div>
|
|
<div class="screen-button"></div>
|
|
</div>
|
|
<div class="controller right">
|
|
<div class="screen-button demote">^</div>
|
|
<div class="screen-button next-image">></div>
|
|
<div class="screen-button promote">v</div>
|
|
<div class="screen-button zoom-in">+</div>
|
|
<div class="screen-button zoom-out">-</div>
|
|
<div class="screen-button toggle-wide">...</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
<!-- vim:set ts=4 sw=4 nowrap : -->
|