diff options
Diffstat (limited to 'assets/js')
| -rw-r--r-- | assets/js/darkmode.js | 11 | ||||
| -rw-r--r-- | assets/js/fullscreen.js | 49 |
2 files changed, 60 insertions, 0 deletions
diff --git a/assets/js/darkmode.js b/assets/js/darkmode.js new file mode 100644 index 0000000..c6094d0 --- /dev/null +++ b/assets/js/darkmode.js | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | // get with web apis #fullscren element and on click toggle fullscreen | ||
| 2 | const darkmode = document.getElementById('darkmode'); | ||
| 3 | const html = document.querySelector('html'); | ||
| 4 | darkmode.addEventListener('click', () => { | ||
| 5 | if (html.dataset.theme === 'dark') { | ||
| 6 | html.dataset.theme = 'light'; | ||
| 7 | } else { | ||
| 8 | html.dataset.theme = 'dark'; | ||
| 9 | } | ||
| 10 | }); | ||
| 11 | |||
diff --git a/assets/js/fullscreen.js b/assets/js/fullscreen.js new file mode 100644 index 0000000..e3cc342 --- /dev/null +++ b/assets/js/fullscreen.js | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | // page | ||
| 2 | const fullscreen = document.getElementById('fullscreen'); | ||
| 3 | const fullscreenIcon = document.getElementById('fullscreen-icon'); | ||
| 4 | const smallscreenIcon = document.getElementById('smallscreen-icon'); | ||
| 5 | const elem = document.documentElement; | ||
| 6 | |||
| 7 | // Functions | ||
| 8 | |||
| 9 | function toggleFullscreen(event) { | ||
| 10 | // check if the event is a keydown event or a click event | ||
| 11 | if (event.type === 'keydown') { | ||
| 12 | // check if the key pressed is '/' key | ||
| 13 | if (event.key !== '/') return; | ||
| 14 | } | ||
| 15 | if (document.fullscreenElement) { | ||
| 16 | closeFullscreen(); | ||
| 17 | } else { | ||
| 18 | openFullscreen(); | ||
| 19 | } | ||
| 20 | } | ||
| 21 | |||
| 22 | function openFullscreen() { | ||
| 23 | smallscreenIcon.classList.toggle('hide'); | ||
| 24 | fullscreenIcon.classList.toggle('hide'); | ||
| 25 | if (elem.requestFullscreen) { | ||
| 26 | elem.requestFullscreen(); | ||
| 27 | } else if (elem.webkitRequestFullscreen) { /* Safari */ | ||
| 28 | elem.webkitRequestFullscreen(); | ||
| 29 | } else if (elem.msRequestFullscreen) { /* IE11 */ | ||
| 30 | elem.msRequestFullscreen(); | ||
| 31 | } | ||
| 32 | } | ||
| 33 | |||
| 34 | function closeFullscreen() { | ||
| 35 | smallscreenIcon.classList.toggle('hide'); | ||
| 36 | fullscreenIcon.classList.toggle('hide'); | ||
| 37 | if (document.exitFullscreen) { | ||
| 38 | document.exitFullscreen(); | ||
| 39 | } else if (document.webkitExitFullscreen) { /* Safari */ | ||
| 40 | document.webkitExitFullscreen(); | ||
| 41 | } else if (document.msExitFullscreen) { /* IE11 */ | ||
| 42 | document.msExitFullscreen(); | ||
| 43 | } | ||
| 44 | } | ||
| 45 | |||
| 46 | // Listeners | ||
| 47 | |||
| 48 | fullscreen.addEventListener('click', toggleFullscreen); | ||
| 49 | document.addEventListener('keydown', toggleFullscreen); \ No newline at end of file | ||
