index.html 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <html lang="en">
  2. <head>
  3. <title>Kvos.dev - Homepage</title>
  4. <link rel="stylesheet" href="style.css" type="text/css"/>
  5. </head>
  6. <body>
  7. <div>
  8. <h1>Kvos.dev</h1<br/>
  9. <h3>Work in progress</h3>
  10. <a href="https://git.kvos.dev">Git projects</a>
  11. <p>
  12. <span>Contact me:</span>
  13. <button onclick="reveal()" id="reveal-button">Reveal</button>
  14. </p>
  15. </div>
  16. <script>
  17. const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.+".split("");
  18. const secret = "YM926LY926MRS9";
  19. const shift = string => {
  20. return string
  21. .split("")
  22. .map(character => chars[
  23. (
  24. chars.indexOf(character) !== -1 &&
  25. chars.indexOf(character) + 1 < chars.length
  26. )
  27. ? chars.indexOf(character) + 1
  28. : 0
  29. ])
  30. .join("");
  31. }
  32. const reveal = () => {
  33. const revealButton = document.getElementById("reveal-button");
  34. const anchor = document.createElement("a");
  35. const paragraph = document.createElement("p");
  36. let decrypted = secret;
  37. revealButton.insertAdjacentElement("afterEnd", paragraph);
  38. revealButton.remove();
  39. let index = 0;
  40. const interval = setInterval(() => {
  41. index++;
  42. decrypted = shift(decrypted);
  43. paragraph.textContent = decrypted;
  44. if (index === 25) {
  45. anchor.href = `mailto:${decrypted}`;
  46. anchor.text = decrypted;
  47. paragraph.replaceWith(anchor);
  48. clearInterval(interval);
  49. }
  50. }, 5);
  51. }
  52. </script>
  53. </body>
  54. </html>