דברים שרואים מכאן לא רואים בכלל
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.html 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>Eye of Beholder</title>
  7. <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  8. <link rel="icon" href="/static/gfx/eob-logo.png">
  9. </head>
  10. <body data-bs-theme="dark" class="overflow-hidden" style="cursor: none">
  11. <div class="container-fluid text-center">
  12. <div class="row">
  13. <div class="col12">
  14. <video id="the-video" style="height:100vh; margin:0 auto" class="object-fit-contain" muted>
  15. <source id="vid-src" type="video/mp4" src=""/>
  16. </video>
  17. </div>
  18. </div>
  19. <div class="row">
  20. <div class="col12">
  21. <div id="ticker-wrapper" class="alert alert-danger opacity-75 w-100" role="alert" style="background-color:#ff0000; position:absolute; left:0; bottom:3.5rem; z-index:23">
  22. <!-- img style="height:10rem; position:absolute; left:-2px; bottom:-1.15rem; z-index:46" src="/static/gfx/zio-kahana-mic.png" / -->
  23. <div id="the-ticker" class="w-100 text-nowrap">
  24. <h1 id="ticker-text" class="fw-bolder text-white" style="direction:rtl; font-size:4rem;">
  25. </h1>
  26. </div>
  27. <div id="the-source" class="w-100 text-nowrap bg-white" style="position: absolute; bottom: -2.5rem; left: 0">
  28. <h3 id="source-text" class="fw-bolder text-danger px-1" style="direction:rtl; text-align:left; font-size:2rem;">
  29. </h3>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <script src="/static/js/config.js"></script>
  36. <script src="/static/js/jquery-3.7.1.min.js"></script>
  37. <script src="/static/js/jquery.marquee.min.js"></script>
  38. <script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>
  39. <script>
  40. function setTicker(ticker_text, source_text) {
  41. $("#the-ticker").marquee("destroy");
  42. if (ticker_text) {
  43. $("#ticker-wrapper").show();
  44. $("#ticker-text").text(ticker_text);
  45. $("#the-ticker").marquee({
  46. "direction": "right",
  47. "duplicated": true,
  48. "speed": 161
  49. });
  50. } else {
  51. $("#ticker-wrapper").hide();
  52. }
  53. $("#source-text").text(source_text)
  54. }
  55. window.item_index = 0;
  56. function nextItem() {
  57. document.getElementById("vid-src").setAttribute('src', '/static/video/'+ITEMS[item_index].vid);
  58. // console.log(document.getElementById("vid-src").getAttribute('src'));
  59. document.getElementById("the-video").load();
  60. document.getElementById("the-video").play();
  61. setTicker(ITEMS[item_index].ticker, ITEMS[item_index].source);
  62. item_index = (item_index+1)%ITEMS.length;
  63. }
  64. $(()=> {
  65. document.getElementById('the-video').addEventListener('ended',nextItem);
  66. nextItem();
  67. });
  68. async function getDistance() {
  69. try {
  70. let response = await fetch("/d");
  71. let data = await response.json();
  72. return data.distance;
  73. } catch {
  74. return 0;
  75. }
  76. };
  77. async function updateDistance() {
  78. var dist = await getDistance();
  79. var vidblur = 0, tickerblur = TICKER_BLUR_WHEN_FAR;
  80. if (dist && dist<MIN_DIST) {
  81. dist = MIN_DIST;
  82. }
  83. if (dist && dist<MAX_DIST) {
  84. vidblur = parseInt(VID_BLUR_WHEN_CLOSE*(MAX_DIST-dist)/(MAX_DIST-MIN_DIST));
  85. tickerblur = parseInt(TICKER_BLUR_WHEN_FAR*(dist-MIN_DIST)/(MAX_DIST-MIN_DIST));
  86. }
  87. // console.log(vidblur,tickerblur);
  88. // console.log(`${vidblur}, ${tickerblur}`);
  89. document.getElementById("the-video").style.filter=`blur(${vidblur}px)`;
  90. document.getElementById("ticker-wrapper").style.filter=`blur(${tickerblur}px)`;
  91. }
  92. window.update_interval = setInterval(updateDistance, 300);
  93. </script>
  94. </body>
  95. </html>