1
0

script.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. // Clock
  2. var dat = document.querySelector("#date-and-time");
  3. var tz = Intl.DateTimeFormat().resolvedOptions().timeZone
  4. function updateTime() {
  5. var currentTime = new Date().toLocaleString(navigator.languages[0], {"timezone": tz});
  6. dat.textContent = currentTime;
  7. }
  8. setInterval(updateTime, 1000);
  9. // Drag elements (base code from https://www.geeksforgeeks.org/html/draggable-element-using-javascript/)
  10. const dragElements = document.querySelectorAll(".draggable");
  11. function onMouseDrag(event, element) {
  12. let leftValue = parseInt(window.getComputedStyle(element).left);
  13. let topValue = parseInt(window.getComputedStyle(element).top);
  14. if (0 < (leftValue + event.movementX) && (leftValue + event.movementX) < (window.window.innerWidth - element.offsetWidth)) {
  15. element.style.left = `${leftValue + event.movementX}px`;
  16. }
  17. if (0 < (topValue + event.movementY) && (topValue + event.movementY) < (window.window.innerHeight - element.offsetHeight)) {
  18. element.style.top = `${topValue + event.movementY}px`;
  19. }
  20. }
  21. dragElements.forEach((element) => {
  22. if (document.getElementById(element.id + "-header"))
  23. document.getElementById(element.id + "-header").addEventListener("mousedown", (e) => {
  24. const onMove = (event) => onMouseDrag(event, element);
  25. document.addEventListener("mousemove", onMove);
  26. document.addEventListener("mouseup", () => {
  27. document.removeEventListener("mousemove", onMove);
  28. }, { once: true });
  29. });
  30. if (document.getElementById(element.id + "-open")) {
  31. document.getElementById(element.id + "-open").addEventListener("click", () => {
  32. openWindow(element);
  33. document.getElementById(element.id + "-open").classList.toggle("closed");
  34. })
  35. }
  36. if (document.getElementById(element.id + "-close")) {
  37. document.getElementById(element.id + "-close").addEventListener("click", () => {
  38. closeWindow(element);
  39. document.getElementById(element.id + "-close").classList.add("closed");
  40. })
  41. }
  42. });
  43. // Open & close windows
  44. var dock = document.getElementById("dock-div");
  45. var topbar = document.getElementById("topbar-div");
  46. function closeWindow(elt) {
  47. elt.classList.add("hidden");
  48. }
  49. var biggestIndex = 0;
  50. function openWindow(elt) {
  51. elt.classList.toggle("hidden");
  52. biggestIndex ++;
  53. elt.style.zIndex = biggestIndex;
  54. dock.style.zIndex = biggestIndex + 1;
  55. topbar.style.zIndex = biggestIndex + 1;
  56. }
  57. // Book list app
  58. var booktitle = document.getElementById("current-book-title");
  59. var bookauthor = document.getElementById("current-book-author");
  60. var bookend = document.getElementById("current-book-end-date");
  61. var bookpubdate = document.getElementById("current-book-publication-date");
  62. var bookcomments = document.getElementById("current-book-comments");
  63. var booklisticon = document.getElementById("booklist-div-icon");
  64. var currentbookid = books.length - 1;
  65. function updateBook(id) {
  66. booktitle.textContent = books[id].title;
  67. bookauthor.textContent = "Written by " + books[id].author;
  68. bookend.textContent = "I finished it on " + books[id].end_date;
  69. bookpubdate.textContent = "It was published on " + books[id].publication_date;
  70. bookcomments.textContent = books[id].comments;
  71. booklisticon.textContent = books[id].icon;
  72. }
  73. function previousBook() {
  74. if (currentbookid > 0) {
  75. currentbookid --;
  76. updateBook(currentbookid);
  77. } else {
  78. alert("It was the first book !");
  79. }
  80. }
  81. function nextBook() {
  82. if (currentbookid < books.length - 1) {
  83. currentbookid ++;
  84. updateBook(currentbookid);
  85. } else {
  86. alert("It is the last book !");
  87. }
  88. }
  89. document.getElementById("next-book-btn").addEventListener("click", nextBook);
  90. document.getElementById("previous-book-btn").addEventListener("click", previousBook);
  91. updateBook(currentbookid);