דברים שרואים מכאן לא רואים בכלל
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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>