mirror of
https://github.com/netbymatt/ws4kp.git
synced 2026-04-22 11:39:30 -07:00
clean up full screen enter/exit close #48
This commit is contained in:
@@ -43,9 +43,12 @@ const init = () => {
|
|||||||
btnGetGps.addEventListener('click', btnGetGpsClick);
|
btnGetGps.addEventListener('click', btnGetGpsClick);
|
||||||
if (!navigator.geolocation) btnGetGps.style.display = 'none';
|
if (!navigator.geolocation) btnGetGps.style.display = 'none';
|
||||||
|
|
||||||
document.querySelector('#divTwc').addEventListener('click', () => {
|
document.querySelector('#divTwc').addEventListener('mousemove', () => {
|
||||||
if (document.fullscreenElement) updateFullScreenNavigate();
|
if (document.fullscreenElement) updateFullScreenNavigate();
|
||||||
});
|
});
|
||||||
|
// local change detection when exiting full screen via ESC key (or other non button click methods)
|
||||||
|
window.addEventListener('resize', fullScreenResizeCheck);
|
||||||
|
fullScreenResizeCheck.wasFull = false;
|
||||||
|
|
||||||
document.querySelector(TXT_ADDRESS_SELECTOR).addEventListener('keydown', (key) => { if (key.code === 'Enter') formSubmit(); });
|
document.querySelector(TXT_ADDRESS_SELECTOR).addEventListener('keydown', (key) => { if (key.code === 'Enter') formSubmit(); });
|
||||||
document.querySelector('#btnGetLatLng').addEventListener('click', () => formSubmit());
|
document.querySelector('#btnGetLatLng').addEventListener('click', () => formSubmit());
|
||||||
@@ -189,7 +192,7 @@ const enterFullScreen = () => {
|
|||||||
|
|
||||||
if (requestMethod) {
|
if (requestMethod) {
|
||||||
// Native full screen.
|
// Native full screen.
|
||||||
requestMethod.call(element, { navigationUI: 'hide' }); // https://bugs.chromium.org/p/chromium/issues/detail?id=933436#c7
|
requestMethod.call(element, { navigationUI: 'hide' });
|
||||||
} else {
|
} else {
|
||||||
// iOS doesn't support FullScreen API.
|
// iOS doesn't support FullScreen API.
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
@@ -217,6 +220,10 @@ const exitFullscreen = () => {
|
|||||||
document.msExitFullscreen();
|
document.msExitFullscreen();
|
||||||
}
|
}
|
||||||
resize();
|
resize();
|
||||||
|
exitFullScreenVisibilityChanges();
|
||||||
|
};
|
||||||
|
|
||||||
|
const exitFullScreenVisibilityChanges = () => {
|
||||||
// change hover text and image
|
// change hover text and image
|
||||||
const img = document.querySelector(TOGGLE_FULL_SCREEN_SELECTOR);
|
const img = document.querySelector(TOGGLE_FULL_SCREEN_SELECTOR);
|
||||||
img.src = 'images/nav/ic_fullscreen_white_24dp_2x.png';
|
img.src = 'images/nav/ic_fullscreen_white_24dp_2x.png';
|
||||||
@@ -228,7 +235,6 @@ const exitFullscreen = () => {
|
|||||||
|
|
||||||
const btnNavigateMenuClick = () => {
|
const btnNavigateMenuClick = () => {
|
||||||
postMessage('navButton', 'menu');
|
postMessage('navButton', 'menu');
|
||||||
updateFullScreenNavigate();
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -261,21 +267,18 @@ const swipeCallBack = (direction) => {
|
|||||||
const btnNavigateRefreshClick = () => {
|
const btnNavigateRefreshClick = () => {
|
||||||
resetStatuses();
|
resetStatuses();
|
||||||
loadData();
|
loadData();
|
||||||
updateFullScreenNavigate();
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const btnNavigateNextClick = () => {
|
const btnNavigateNextClick = () => {
|
||||||
postMessage('navButton', 'next');
|
postMessage('navButton', 'next');
|
||||||
updateFullScreenNavigate();
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const btnNavigatePreviousClick = () => {
|
const btnNavigatePreviousClick = () => {
|
||||||
postMessage('navButton', 'previous');
|
postMessage('navButton', 'previous');
|
||||||
updateFullScreenNavigate();
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
@@ -348,7 +351,6 @@ const documentKeydown = (e) => {
|
|||||||
|
|
||||||
const btnNavigatePlayClick = () => {
|
const btnNavigatePlayClick = () => {
|
||||||
postMessage('navButton', 'playToggle');
|
postMessage('navButton', 'playToggle');
|
||||||
updateFullScreenNavigate();
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
@@ -393,3 +395,18 @@ const btnGetGpsClick = async () => {
|
|||||||
txtAddress.value = `${location.city}, ${location.state}`;
|
txtAddress.value = `${location.city}, ${location.state}`;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// check for change in full screen triggered by browser and run local functions
|
||||||
|
const fullScreenResizeCheck = () => {
|
||||||
|
if (fullScreenResizeCheck.wasFull && !document.fullscreenElement) {
|
||||||
|
// leaving full screen
|
||||||
|
exitFullScreenVisibilityChanges();
|
||||||
|
}
|
||||||
|
if (!fullScreenResizeCheck.wasFull && document.fullscreenElement) {
|
||||||
|
// entering full screen
|
||||||
|
// can't do much here because a UI interaction is required to change the full screen div element
|
||||||
|
}
|
||||||
|
|
||||||
|
// store state of fullscreen element for next change detection
|
||||||
|
fullScreenResizeCheck.wasFull = !!document.fullscreenElement;
|
||||||
|
};
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -449,10 +449,10 @@ body {
|
|||||||
.visible {
|
.visible {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: opacity 1s linear;
|
transition: opacity 0.1s linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hidden {
|
#divTwc:fullscreen .hidden {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: visibility 0s 1s, opacity 1s linear
|
transition: visibility 0s 1s, opacity 1s linear
|
||||||
|
|||||||
Reference in New Issue
Block a user