Improved mobile photo browsing

This commit is contained in:
Keplyx 2018-10-04 14:05:53 +02:00
parent f08c8a166f
commit f5824375fa
2 changed files with 30 additions and 16 deletions

View file

@ -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);
} }

View file

@ -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/'