main.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. function getRandomChar() {
  2. var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890";
  3. var randomChar = chars.charAt((Math.floor(Math.random() * chars.length)));
  4. return randomChar;
  5. }
  6. function renderLogo(logoId, name, horizontalPadding, verticalPadding, logoUrl="#") {
  7. var logoDiv = document.getElementById(logoId);
  8. var paddingLength = ((horizontalPadding * 2 + name.length) * verticalPadding) + horizontalPadding;
  9. console.log(paddingLength);
  10. var currentText = logoDiv.innerText;
  11. var currentLength = logoDiv.textContent.replace(/\n/g, "").length;
  12. setTimeout(function() {
  13. if (currentLength < paddingLength * 2 + name.length) {
  14. if (currentLength > 0 && currentLength % (horizontalPadding * 2 + name.length) == 0) {
  15. logoDiv.innerHTML += "<br>";
  16. }
  17. if (currentLength == paddingLength) {
  18. var textSpan = document.createElement("a");
  19. textSpan.href= logoUrl;
  20. logoDiv.appendChild(textSpan);
  21. }
  22. if (currentLength < paddingLength || currentLength >= paddingLength + name.length) {
  23. logoDiv.innerHTML += getRandomChar();
  24. } else {
  25. var logoLength = currentLength - paddingLength;
  26. var textSpan = logoDiv.querySelector("a");
  27. textSpan.textContent += name.charAt(logoLength);
  28. }
  29. renderLogo(logoId, name, horizontalPadding, verticalPadding, logoUrl);
  30. }
  31. }, 80)
  32. }
  33. function initLogo(targetId, name, padX=4, padY=2, logoUrl="#") {
  34. var target = document.getElementById(targetId);
  35. var str = "";
  36. var str2 = "";
  37. for (i=0; i < (name.length + (padX * 2)); i++) {
  38. str += "x";
  39. }
  40. for (i=0; i < (padY * 2) + 1; i++ ){
  41. str2 += str + "<br>";
  42. }
  43. var tmpSpan = document.createElement("span");
  44. tmpSpan.classList.add("hidden");
  45. tmpSpan.innerHTML = str2;
  46. target.appendChild(tmpSpan);
  47. var logoWidth = tmpSpan.offsetWidth;
  48. var logoHeight = tmpSpan.offsetHeight;
  49. target.removeChild(tmpSpan);
  50. target.style.width = (logoWidth + 1) + "px";
  51. target.style.marginLeft = ((logoWidth / 2) * -1) + "px";
  52. target.style.height = (logoHeight + 1) + "px";
  53. target.style.marginTop = ((logoHeight / 2) * -1) + "px";
  54. renderLogo(targetId, name, padX, padY, logoUrl);
  55. }