script.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. console.log('%cCopyright © 2024 zyyo.net',
  2. 'background-color: #ff00ff; color: white; font-size: 24px; font-weight: bold; padding: 10px;'
  3. );
  4. console.log('%c /\\_/\\', 'color: #8B4513; font-size: 20px;');
  5. console.log('%c ( o.o )', 'color: #8B4513; font-size: 20px;');
  6. console.log(' %c > ^ <', 'color: #8B4513; font-size: 20px;');
  7. console.log(' %c / ~ \\', 'color: #8B4513; font-size: 20px;');
  8. console.log(' %c/______\\', 'color: #8B4513; font-size: 20px;');
  9. document.addEventListener('contextmenu', function (event) {
  10. event.preventDefault();
  11. });
  12. function handlePress(event) {
  13. this.classList.add('pressed');
  14. }
  15. function handleRelease(event) {
  16. this.classList.remove('pressed');
  17. }
  18. function handleCancel(event) {
  19. this.classList.remove('pressed');
  20. }
  21. var buttons = document.querySelectorAll('.projectItem');
  22. buttons.forEach(function (button) {
  23. button.addEventListener('mousedown', handlePress);
  24. button.addEventListener('mouseup', handleRelease);
  25. button.addEventListener('mouseleave', handleCancel);
  26. button.addEventListener('touchstart', handlePress);
  27. button.addEventListener('touchend', handleRelease);
  28. button.addEventListener('touchcancel', handleCancel);
  29. });
  30. function toggleClass(selector, className) {
  31. var elements = document.querySelectorAll(selector);
  32. elements.forEach(function (element) {
  33. element.classList.toggle(className);
  34. });
  35. }
  36. function pop(imageURL) {
  37. var tcMainElement = document.querySelector(".tc-img");
  38. if (imageURL) {
  39. tcMainElement.src = imageURL;
  40. }
  41. toggleClass(".tc-main", "active");
  42. toggleClass(".tc", "active");
  43. }
  44. var tc = document.getElementsByClassName('tc');
  45. var tc_main = document.getElementsByClassName('tc-main');
  46. tc[0].addEventListener('click', function (event) {
  47. pop();
  48. });
  49. tc_main[0].addEventListener('click', function (event) {
  50. event.stopPropagation();
  51. });
  52. function setCookie(name, value, days) {
  53. var expires = "";
  54. if (days) {
  55. var date = new Date();
  56. date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
  57. expires = "; expires=" + date.toUTCString();
  58. }
  59. document.cookie = name + "=" + value + expires + "; path=/";
  60. }
  61. function getCookie(name) {
  62. var nameEQ = name + "=";
  63. var cookies = document.cookie.split(';');
  64. for (var i = 0; i < cookies.length; i++) {
  65. var cookie = cookies[i];
  66. while (cookie.charAt(0) == ' ') {
  67. cookie = cookie.substring(1, cookie.length);
  68. }
  69. if (cookie.indexOf(nameEQ) == 0) {
  70. return cookie.substring(nameEQ.length, cookie.length);
  71. }
  72. }
  73. return null;
  74. }
  75. document.addEventListener('DOMContentLoaded', function () {
  76. var html = document.querySelector('html');
  77. var themeState = getCookie("themeState") || "Light";
  78. var tanChiShe = document.getElementById("tanChiShe");
  79. function changeTheme(theme) {
  80. tanChiShe.src = "./static/svg/snake-" + theme + ".svg";
  81. html.dataset.theme = theme;
  82. setCookie("themeState", theme, 365);
  83. themeState = theme;
  84. }
  85. var Checkbox = document.getElementById('myonoffswitch')
  86. Checkbox.addEventListener('change', function () {
  87. if (themeState == "Dark") {
  88. changeTheme("Light");
  89. } else if (themeState == "Light") {
  90. changeTheme("Dark");
  91. } else {
  92. changeTheme("Dark");
  93. }
  94. });
  95. if (themeState == "Dark") {
  96. Checkbox.checked = false;
  97. }
  98. changeTheme(themeState);
  99. var pageLoading = document.querySelector("#zyyo-loading");
  100. setTimeout(function () {
  101. pageLoading.style.opacity = '0';
  102. }, 100);
  103. /*
  104. var fpsElement = document.createElement('div');
  105. fpsElement.id = 'fps';
  106. fpsElement.style.zIndex = '10000';
  107. fpsElement.style.position = 'fixed';
  108. fpsElement.style.left = '0';
  109. document.body.insertBefore(fpsElement, document.body.firstChild);
  110. var showFPS = (function () {
  111. var requestAnimationFrame = window.requestAnimationFrame ||
  112. window.webkitRequestAnimationFrame ||
  113. window.mozRequestAnimationFrame ||
  114. window.oRequestAnimationFrame ||
  115. window.msRequestAnimationFrame ||
  116. function (callback) {
  117. window.setTimeout(callback, 1000 / 60);
  118. };
  119. var fps = 0,
  120. last = Date.now(),
  121. offset, step, appendFps;
  122. step = function () {
  123. offset = Date.now() - last;
  124. fps += 1;
  125. if (offset >= 1000) {
  126. last += offset;
  127. appendFps(fps);
  128. fps = 0;
  129. }
  130. requestAnimationFrame(step);
  131. };
  132. appendFps = function (fpsValue) {
  133. fpsElement.textContent = 'FPS: ' + fpsValue;
  134. };
  135. step();
  136. })();
  137. */
  138. });