Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Генерация изображений (https://javascript.ru/forum/css-html-firefox-mizilla/83645-generaciya-izobrazhenijj.html)

Борис К 19.06.2023 12:57

Цитата:

Сообщение от рони
if (win) createImg()

Опять двойка... мне стыдно(((
СПАСИБО, Рони! :thanks:
P.S. Возможно, Вам пригодится следующий "интересный" факт: экспериментируя с количеством и размерами исходных изображений для canvas, я обнаружил, что размеры таблицы с сегментами заметно уменьшены и сами сегменты неравномерно размещаются в таблице... вот такие дела)

Борис К 27.06.2023 09:34

Здравствуйте, Рони! :)
Экспериментируя с некоторыми вариантами вашего кода, перенёс пути к изображениям из скрипта в стили:
<style type="text/css">

[data-id="girl"] {
            background-image:url(https://loremflickr.com/150/150/girl?random=1);
            width: 150px;
            height: 150px;
        }
[data-id="dog"] {
            background-image:url(https://loremflickr.com/150/150/dog?random=2);
            width: 150px;
            height: 150px;
        }
[data-id="boy"] {
            background-image:url(https://loremflickr.com/150/150/boy?random=3);
            width: 150px;
            height: 150px;
        }
[data-id="kitten"] {
            background-image:url(https://loremflickr.com/150/150/kitten?random=4);
            width: 150px;
            height: 150px;
        }
    </style>

Но не могу понять, как изменить следующие строки скрипта, чтобы в нём указать отсылку к изображениям в стилях:
const images = [
            "https://loremflickr.com/150/150/girl?random=1",
            "https://loremflickr.com/150/150/dog?random=2",
            "https://loremflickr.com/150/150/boy?random=3",
            "https://loremflickr.com/150/150/kitten?random=4"
        ];

:help:

рони 27.06.2023 10:26

Борис К,
пас, умных мыслей, как это сделать, нет.

Alexandroppolus 27.06.2023 14:58

Борис К,
тебе понадобится вытащить ссылки из таблицы стилей
кури начиная отсюда: https://developer.mozilla.org/en-US/...nt/styleSheets

Борис К 27.06.2023 15:33

Alexandroppolus, благодарю за подсказку!)
P.S. Пока такое высшая математика((

Alexandroppolus 27.06.2023 15:53

Борис К,
это весьма и весьма далеко от высшей математики.

0) открой консоль разработчика на странице своего приложения, лучше в Хроме

1) введи строку document.styleSheets , нажми энтер.

2) тебе вывалится здоровенный объект, и раскрывая ветви дерева, ты увидишь всю правду о таблицах стилей в твоем документе.

Остается только с помощью js забрать из этого объекта всё нужное.

Борис К 28.06.2023 18:20

Цитата:

Сообщение от Alexandroppolus
это весьма и весьма далеко от высшей математики

Это я образно о своих "способностях"!((
Цитата:

Сообщение от Alexandroppolus
0) открой консоль разработчика на странице своего приложения, лучше в Хроме

1) введи строку document.styleSheets , нажми энтер.

2) тебе вывалится здоровенный объект, и раскрывая ветви дерева, ты увидишь всю правду о таблицах стилей в твоем документе.

Остается только с помощью js забрать из этого объекта всё нужное.

Благодарю за подсказку!))

voraa 28.06.2023 18:45

Цитата:

Сообщение от Alexandroppolus
ты увидишь всю правду о таблицах стилей в твоем документе.

И потом можно медитировать над
https://developer.mozilla.org/en-US/...nt/styleSheets
https://developer.mozilla.org/en-US/.../CSSStyleSheet
https://developer.mozilla.org/en-US/...eb/API/CSSRule
https://developer.mozilla.org/en-US/...I/CSSStyleRule
и связанными темами.
CSSom немного посложнеее, чем Dom на мой взгляд.
+ некоторые неточности по сравнению с тем, что реально есть в браузере.

Борис К 29.06.2023 10:43

Voraa, спасибо за ссылки!))
/Но только не ругайтесь за следующий вопрос)/
Вообще возможно ли сделать так, чтобы в массиве обсуждаемого кода, например, вместо одного из изображений ("https://loremflickr.com/150/150/girl?random=1") был красный квадрат, созданный из следующего стиля:
background-color: #ff0000;
            width: 150px;
            height: 150px;
?
P.S. У меня есть опасения, что я мог быть ранее неправильно понят.((

voraa 29.06.2023 12:21

Многое чего можно сделать. Весь вопрос в сложности.
Зачем для каждого квадрата в css указывать width и height? Разве они могут отличаться?
Достаточно создать одно правило для всех квадратов (через класс и атрибут) и там указать ширину и высоту
[data-id] {
            width: 150px;
            height: 150px;
        }
[data-id="girl"] {
            background-image:url(https://loremflickr.com/150/150/girl?random=1);
        }
[data-id="dog"] {
            background-image:url(https://loremflickr.com/150/150/dog?random=2);
        }
[data-id="boy"] {
            background-image:url(https://loremflickr.com/150/150/boy?random=3);
        }
[data-id="kitten"] {
            background-image:url(https://loremflickr.com/150/150/kitten?random=4);
        }


Часовой пояс GMT +3, время: 19:25.