forked from rebillar/site-accueil-insa
Improved mobile photo browsing
This commit is contained in:
parent
f08c8a166f
commit
f5824375fa
2 changed files with 30 additions and 16 deletions
|
@ -12,6 +12,7 @@ var grab_offsetY = 0;
|
||||||
|
|
||||||
var idle_time = 0;
|
var idle_time = 0;
|
||||||
var scaling = false;
|
var scaling = false;
|
||||||
|
var isMobile = window.matchMedia("only screen and (max-width: 480px)").matches;
|
||||||
|
|
||||||
$(document).ready(
|
$(document).ready(
|
||||||
function () {
|
function () {
|
||||||
|
@ -52,11 +53,13 @@ $(document).ready(
|
||||||
showcase.css('top', $(window).height()/2 +'px');
|
showcase.css('top', $(window).height()/2 +'px');
|
||||||
showcase.css('cursor', 'default');
|
showcase.css('cursor', 'default');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
document.getElementById("photos_title").scrollIntoView();
|
||||||
|
showcase.on('dragstart', function(event) { event.preventDefault(); }); // Stop image drag out of page
|
||||||
|
if (!isMobile)
|
||||||
|
setInterval(timerIncrement, 100);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -90,17 +93,17 @@ showcase.mousedown(function(event){
|
||||||
let cursorY = event.pageY - $(window).scrollTop();
|
let cursorY = event.pageY - $(window).scrollTop();
|
||||||
grab_offsetX = event.pageX - (showcase.position().left + showcase.width()/2);
|
grab_offsetX = event.pageX - (showcase.position().left + showcase.width()/2);
|
||||||
grab_offsetY = cursorY - (showcase.position().top + showcase.height()/2);
|
grab_offsetY = cursorY - (showcase.position().top + showcase.height()/2);
|
||||||
console.log("down");
|
|
||||||
|
if (isMobile)
|
||||||
|
toggleFullscreen();
|
||||||
});
|
});
|
||||||
|
|
||||||
showcase.mouseup(function(){
|
showcase.mouseup(function(){
|
||||||
move_photo = false;
|
move_photo = false;
|
||||||
console.log("up");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
showcase.mouseleave(function(){
|
showcase.mouseleave(function(){
|
||||||
move_photo = false;
|
move_photo = false;
|
||||||
console.log("up");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,6 +139,13 @@ function disableFullscreen() {
|
||||||
showcaseButton.fadeIn(500);
|
showcaseButton.fadeIn(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleFullscreen() {
|
||||||
|
if (is_fullscreen())
|
||||||
|
disableFullscreen();
|
||||||
|
else
|
||||||
|
enableFullscreen();
|
||||||
|
}
|
||||||
|
|
||||||
function hideTopBar() {
|
function hideTopBar() {
|
||||||
headerTop.fadeOut(500);
|
headerTop.fadeOut(500);
|
||||||
sideNav.fadeOut(500);
|
sideNav.fadeOut(500);
|
||||||
|
@ -150,11 +160,6 @@ function is_fullscreen(){
|
||||||
return showcaseButton.css("display") === "none";
|
return showcaseButton.css("display") === "none";
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
document.getElementById("photos_title").scrollIntoView();
|
|
||||||
showcase.on('dragstart', function(event) { event.preventDefault(); }); // Stop image drag out of page
|
|
||||||
setInterval(timerIncrement, 100);
|
|
||||||
});
|
|
||||||
|
|
||||||
function timerIncrement() {
|
function timerIncrement() {
|
||||||
idle_time = idle_time+ 1;
|
idle_time = idle_time+ 1;
|
||||||
|
@ -187,16 +192,17 @@ $(document).keydown(function (e) {
|
||||||
/*
|
/*
|
||||||
* Control images with swipes
|
* Control images with swipes
|
||||||
*/
|
*/
|
||||||
var img = document.querySelector('#photo_overlay');
|
|
||||||
|
var img = document.querySelector('#img-big');
|
||||||
// Create a manager to manager the element
|
// Create a manager to manager the element
|
||||||
var manager = new Hammer.Manager(img);
|
var manager = new Hammer.Manager(img, {touchAction: "auto"}); // enable the touch action to allow scrolling on the sidenav
|
||||||
// Create a recognizer
|
// Create a recognizer
|
||||||
var Swipe = new Hammer.Swipe();
|
var Swipe = new Hammer.Swipe();
|
||||||
// Add the recognizer to the manager
|
// Add the recognizer to the manager
|
||||||
manager.add(Swipe);
|
manager.add(Swipe);
|
||||||
|
|
||||||
// Subscribe to the swipe event
|
// Subscribe to the swipe event
|
||||||
manager.on('swipe', function (e) {
|
manager.on('swipe', function(e) {
|
||||||
var direction = e.offsetDirection;
|
var direction = e.offsetDirection;
|
||||||
if (direction === 4) { // right
|
if (direction === 4) { // right
|
||||||
displayNext(-1);
|
displayNext(-1);
|
||||||
|
@ -237,19 +243,27 @@ function displayNext(direction) {
|
||||||
*/
|
*/
|
||||||
function changeImage(thumb) {
|
function changeImage(thumb) {
|
||||||
displayLoading();
|
displayLoading();
|
||||||
|
showcase.css('display', 'none');
|
||||||
showcase.on('load', function () {
|
showcase.on('load', function () {
|
||||||
hideLoading();
|
hideLoading();
|
||||||
|
showcase.css('display', 'block');
|
||||||
|
if ($(showcase).width() > $(window).width()){ // prevent display problems on portait devices
|
||||||
|
var scale = $(window).width() * 0.9 / $(showcase).width();
|
||||||
|
$(showcase).width(scale*$(showcase).width());
|
||||||
|
$(showcase).height(scale*$(showcase).height());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
var source = getSourceFromThumbnail(thumb);
|
var source = getSourceFromThumbnail(thumb);
|
||||||
showcase.attr("src", source);
|
showcase.attr("src", source);
|
||||||
showcase.css({
|
showcase.css({
|
||||||
width: 'auto',
|
width: 'auto',
|
||||||
height: '90%'
|
height: '90%',
|
||||||
});
|
});
|
||||||
showcase.css('left', $(window).width()/2 +'px');
|
showcase.css('left', $(window).width()/2 +'px');
|
||||||
showcase.css('top', $(window).height()/2 +'px');
|
showcase.css('top', $(window).height()/2 +'px');
|
||||||
showcaseLink.attr("href", source);
|
showcaseLink.attr("href", source);
|
||||||
showcaseDownload.attr("href", source);
|
showcaseDownload.attr("href", source);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -259,4 +273,4 @@ function displayLoading() {
|
||||||
|
|
||||||
function hideLoading() {
|
function hideLoading() {
|
||||||
loading.fadeOut(200);
|
loading.fadeOut(200);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
ob_start(); // Start reading html
|
ob_start(); // Start reading html
|
||||||
|
|
||||||
define("urlParam", "path");
|
define("urlParam", "path");
|
||||||
define("photoRoot", "photos");
|
define("photoRoot", "photos_folders/photos");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get active path from url and prevent from seeing folders before 'photos/'
|
* Get active path from url and prevent from seeing folders before 'photos/'
|
||||||
|
|
Loading…
Reference in a new issue