Pictures!
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

script.js 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. (function fullscreen() {
  2. var elem = document.body;
  3. var rFS = elem.requestFullScreen ||
  4. elem.msRequestFullScreen ||
  5. elem.mozRequestFullScreen ||
  6. elem.webkitRequestFullScreen;
  7. if (rFS)
  8. rFS.call(elem);
  9. })();
  10. var overlay = () => document.querySelector("#overlay");
  11. var main = () => document.querySelector("#main");
  12. var msg = () => document.querySelector("#msg");
  13. function message(str) {
  14. msg().innerHTML = str;
  15. msg().className = "active";
  16. }
  17. // Swap the IDs of two elements
  18. function swap(elem1, elem2) {
  19. var tmp = elem1.id;
  20. elem1.id = elem2.id;
  21. elem2.id = tmp;
  22. }
  23. // Change slides with a transition
  24. function update(name) {
  25. overlay().className = "";
  26. swap(main(), overlay());
  27. main().src ="/"+name+"/";
  28. main().onload = () => {
  29. overlay().className = "hidden";
  30. }
  31. }
  32. function reload() {
  33. message("Server down, waiting");
  34. var i = setInterval(() => {
  35. fetch("/")
  36. .then(() => {
  37. history.replaceState({}, "", "/");
  38. location.reload();
  39. })
  40. .catch(() => {});
  41. }, 1000);
  42. }
  43. function await() {
  44. // Wait for the next slide change, then update again
  45. fetch("/await", { method: "POST" })
  46. .then(response => response.json())
  47. .then(obj => {
  48. if (obj.evt === "next") {
  49. update(obj.args.name);
  50. } else if (obj.evt === "reload") {
  51. return reload();
  52. } else {
  53. console.log("Unknown event: "+obj.evt);
  54. }
  55. await();
  56. })
  57. .catch(err => { console.error(err); await(); });
  58. }
  59. await();
  60. fetch("/init")
  61. .then(response => response.text())
  62. .then(name => update(name));