Проверить Matter.js
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.3KB

  1. мир.изображения = {
  2. умолчание: {
  3. x: 0,
  4. y: 0,
  5. ширина: 100,
  6. высота: 100,
  7. },
  8. задано: {},
  9. элементы: {},
  10. };
  11. // // // //
  12. мир.ключники.push(function(ключ, путь, значение){
  13. if (!ключ.startsWith("изображения"))
  14. {
  15. return;
  16. }
  17. var имя = путь[1];
  18. if (!(имя in мир.изображения.задано))
  19. {
  20. мир.изображения.задано[имя] = {};
  21. }
  22. //var свойство = путь.slice(2).join(".");
  23. var свойство = путь[2];
  24. мир.изображения.задано[имя][свойство] = значение;
  25. обновитьИзображение(путь, имя, свойство, значение);
  26. });
  27. // // // //
  28. function обновитьИзображение(путь, имя, свойство, значение)
  29. {
  30. var за = мир.изображения.задано[имя];
  31. var ум = мир.изображения.умолчание;
  32. var эл = мир.изображения.элементы[имя];
  33. if (!эл)
  34. {
  35. эл = document.createElement("div");
  36. эл.id = `изображения-${имя}`;
  37. эл.style.position = "absolute";
  38. эл.style.display = "block";
  39. document.getElementById("корень").appendChild(эл);
  40. мир.изображения.элементы[имя] = эл;
  41. // Свойства по умолчанию.
  42. эл.style.left = `${ум.x}px`;
  43. эл.style.top = `${ум.y}px`;
  44. эл.style.width = `${ум.ширина}px`;
  45. эл.style.height = `${ум.высота}px`;
  46. }
  47. if (свойство == "ширина")
  48. {
  49. эл.style.width = `${за.ширина}px`;
  50. }
  51. else if (свойство == "высота")
  52. {
  53. эл.style.height = `${за.высота}px`;
  54. }
  55. else if (свойство == "x")
  56. {
  57. эл.style.left = `${за.x}px`;
  58. }
  59. else if (свойство == "y")
  60. {
  61. эл.style.top = `${за.y}px`;
  62. }
  63. else if (свойство == "вид")
  64. {
  65. var параметр = путь[3];
  66. эл.style.setProperty(параметр, значение);
  67. }
  68. }