דברים שרואים מכאן לא רואים בכלל
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 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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/eye-horus.png">
  9. </head>
  10. <body data-bs-theme="dark">
  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 autoplay loop>
  15. <source src="/static/video/hossam-shabat-bg-effect.mp4"/>
  16. </video>
  17. </div>
  18. </div>
  19. <div class="row">
  20. <div class="col12">
  21. <div id="the-ticker" class="marquee alert alert-danger text-white h2 fw-bolder w100 opacity-50 text-nowrap" role="alert" style="direction:rtl; position:fixed; left:0; bottom:4rem; z-index:23">
  22. חוסל מחבל חמאס שעבד עם "אל-ג'זירה" • ברצועה מדווחים על הרוגים בתקיפות במחנה נוסיראת ובדרום חאן יונס • בין ההרוגים - כתב "פלשתין אל יום" וכתב "אל-ג'זירה" חוסאם שבאת • צה"ל חשף כי לפי מידע מודיעיני, חוסאם שבאת הוא מחבל בגדוד בית חאנון של ארגון הטרור חמאס • שחר קליימן, ישראל היום, 24/2/25
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <script src="/static/js/jquery-3.7.1.min.js"></script>
  28. <script src="/static/js/jquery.marquee.min.js"></script>
  29. <script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>
  30. <script>
  31. $(()=> {
  32. $(".marquee").marquee({
  33. "direction": "right",
  34. "duplicated": true,
  35. "speed": 69
  36. });
  37. });
  38. async function getDistance() {
  39. try {
  40. let response = await fetch("/d");
  41. let data = await response.json();
  42. return data.distance;
  43. } catch {
  44. return 0;
  45. }
  46. };
  47. const MAX_DIST = 2000;
  48. const MIN_DIST = 300;
  49. const VID_BLUR_FACTOR = MAX_DIST/16.0; // float
  50. const TICKER_BLUR_FACTOR = MAX_DIST/32.0; // float
  51. async function updateDistance() {
  52. var dist = await getDistance();
  53. var vidblur = 0; tickerblur = 0;
  54. if (dist>MIN_DIST && dist<MAX_DIST) {
  55. vidblur = parseInt((MAX_DIST-dist)/VID_BLUR_FACTOR);
  56. tickerblur = parseInt(dist/TICKER_BLUR_FACTOR);
  57. }
  58. //console.log(`${vidblur}, ${tickerblur}`);
  59. document.getElementById("the-video").style.filter=`blur(${vidblur}px)`;
  60. document.getElementById("the-ticker").style.filter=`blur(${tickerblur}px)`;
  61. }
  62. window.update_interval = setInterval(updateDistance, 200);
  63. </script>
  64. </body>
  65. </html>