ImageGrid/ui/gallery.html
Alex A. Naanou 1b99e2a4dd minor tweeks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2012-06-06 16:53:06 +04:00

244 lines
5.0 KiB
HTML
Executable File

<!--
TODO:
- basic structure
ribbons
images
indicators
- basic control elements
touch zones / buttons
next
prev
shift up
shift down
promote
demote
zoom in
zoom out
toggle single image
ISSUES:
- jumping...
-->
<script src="jquery.js"></script>
<script>
$(document).ready(function() {
$(".image").click(function(e) {
var cur = $(this)
// switch classes...
cur.parents().siblings().children(".image").removeClass("current-image")
cur.siblings(".image").removeClass("current-image")
cur.siblings().children(".image").removeClass("current-image")
cur.parents().siblings(".ribbon").removeClass("current-ribbon")
cur.addClass("current-image")
cur.parents(".ribbon").addClass("current-ribbon")
var container = cur.parents('.container')
var field = cur.parents(".field")
var image_offset = cur.offset()
var field_offset = field.offset()
// center the current image...
field.css({
left: field_offset.left - image_offset.left + (container.innerWidth() - cur.innerWidth())/2,
top: field_offset.top - image_offset.top + (container.innerHeight() - cur.innerHeight())/2
})
// XXX do I need this???
e.preventDefault();
});
// set the default position...
$('.current-image').click()
});
// modes...
function showRibbon(){
$('.single-image-mode').removeClass('single-image-mode')
}
function showSingle(){
$('.field').not('.single-image-mode').addClass('single-image-mode')
}
// basic navigation...
function prevImage(){
$('.current-image').prev('.image').click()
}
function nextImage(){
$('.current-image').next('.image').click()
}
// XXX move to above ribbon...
// XXX move to below ribbon...
// create ribbon above/below helpers...
// XXX
// promote...
// XXX
// demote...
// XXX
</script>
<style>
.image {
position: relative;
display: inline-block;
opacity: 0.3;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
cursor: hand;
}
.mock-image {
width: 350px;
height: 350px;
background: blue;
}
.container {
overflow: hidden;
width: 800px;
height: 500px;
}
.field {
position: relative;
overflow: visible;
top: 0px;
left: -100px;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.ribbon {
height: 360px;
width: 5000px;
overflow: visible;
padding-top: 2px;
padding-bottom: 2px;
text-align: center;
opacity: 0.2;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.current-image {
opacity: 1.0;
}
.current-ribbon {
padding-top: 20px;
padding-bottom: 20px;
opacity: 1.0;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.current-ribbon .image {
}
/* single image theme (start everything with .single-image-mode) */
.single-image-mode .image {
opacity: 0.0;
}
.single-image-mode .image:hover {
opacity: 0.5;
}
.single-image-mode .current-image:hover, .single-image-mode .current-image {
opacity: 1.0;
}
</style>
<div class="container">
<div class="field">
<div class="ribbon">
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
</div>
<div class="ribbon">
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
</div>
<div class="ribbon current-ribbon">
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image current-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
</div>
<div class="ribbon">
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
</div>
<div class="ribbon">
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
<div class="image mock-image"></div>
</div>
</div>
</div>
<button onclick="prevImage()">prev</button>
<button onclick="nextImage()">next</button>
<br><br>
<button onclick="showSingle()">single</button>
<button onclick="showRibbon()">ribbon</button>
<!-- vim:set ts=4 sw=4 nowrap : -->