цвет RGB

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
SlavaAf
Сообщения: 59
Зарегистрирован: Вс июл 26, 2020 6:52 pm

цвет RGB

Сообщение SlavaAf »

Добрый день, подскажите как сделать всплывающую панель (от клика на объекте сцены) при котором можно было бы движком выбрать цвет RGB.
На пультах такого не нашел, может кто делал?
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: цвет RGB

Сообщение xor »

SlavaAf писал(а): Чт сен 10, 2020 1:44 am Добрый день, подскажите как сделать всплывающую панель (от клика на объекте сцены) при котором можно было бы движком выбрать цвет RGB.
На пультах такого не нашел, может кто делал?
в интерфейсе mboard есть готовый виджет
в системе есть встроенный, например в ПУ, колорпикер.
Диван, вроде, в своих сценах делал
Вложения
2020-09-10_01-50-00.png
2020-09-10_01-50-00.png (3.53 КБ) 2997 просмотров
2020-09-10_01-49-19.png
2020-09-10_01-49-19.png (33.21 КБ) 2997 просмотров
SlavaAf
Сообщения: 59
Зарегистрирован: Вс июл 26, 2020 6:52 pm

Re: цвет RGB

Сообщение SlavaAf »

Еще бы знать как это прикрепить к своему классу :D :D :D
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: цвет RGB

Сообщение xor »

SlavaAf писал(а): Чт сен 10, 2020 2:16 am Еще бы знать как это прикрепить к своему классу :D :D :D
вот у меня такой шаблон класса ргб, выдранный из пу
Только свои свойства и методы пропишите (где %%)

Код: Выделить всё

<style>
    .myrgb-widget {
    }
    .myrgb-text {
        padding-top:10px;
        cursor:pointer;
        vertical-align:middle;
    }
    .myrgb-light {
        border-radius:50%;
        width:22px;
        height:22px;
        border:2px solid #3d3d3d;
        margin-top:5px;
        float:left;
        margin-right:10px;
    }
    .myrgb-light.on {
        background-color:#FFC773;
        box-shadow: 0px 0px 15px #FF9900;
        border-color:#FDF1DF;
    }
</style>

<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="myrgb-widget">
    <div class="myrgb-light %.status|"off;on"%"></div>
    <div class="myrgb-text" style='display:%.status|"none;block"%;cursor:pointer' onClick='callMethod("%.object_title%.turnOff");'>%.name%</div>
    <div class="myrgb-text" style='display:%.status|"block;none"%;cursor:pointer' onClick='callMethod("%.object_title%.turnOn");'>%.name%</div>
<div>
    <input type="text" id="colnn" value="%.color%" onChange='callMethod("%.object_title%.setColor","color="+encodeURIComponent(this.value));'/>
</div>
<script>
    $("#colnn").spectrum({
        preferredFormat: "hex",
        showInput: true,
        chooseText: "OK",
        cancelText: "Отмена"
    });
</script>
</div>
SlavaAf
Сообщения: 59
Зарегистрирован: Вс июл 26, 2020 6:52 pm

Re: цвет RGB

Сообщение SlavaAf »

спасибо буду пробывать
SlavaAf
Сообщения: 59
Зарегистрирован: Вс июл 26, 2020 6:52 pm

Re: цвет RGB

Сообщение SlavaAf »

Не выходит до конца. Не могу принять измененное значение цвета.
Упростил немного под свою задачку код.

Код: Выделить всё

<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="rgb_class">
<div>
    <input type="text" id="colnn" value="%.Color%" onChange='callMethod("%.object_title%.SetColor", "Color="+encodeURIComponent(this.value));'/>

</div>
<script>
   $("#colnn").spectrum({
        preferredFormat: "hex",
        showInput: true,
        chooseText: "OK",
        cancelText: "Отмена"
    });
</script>
%.Color%
</div>
Но по итогу инициализируется все нормально значением из свойства класса, а обратно не возвращает когда меняю цвет. Метод изменения цвета при этом запускается а свойство Color остается без изменений.
Наверное что-то простое упустил. :D :D :D
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: цвет RGB

Сообщение xor »

SlavaAf писал(а): Пт сен 11, 2020 2:25 am Не выходит до конца. Не могу принять измененное значение цвета.
Упростил немного под свою задачку код.

Код: Выделить всё

<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="rgb_class">
<div>
    <input type="text" id="colnn" value="%.Color%" onChange='callMethod("%.object_title%.SetColor", "Color="+encodeURIComponent(this.value));'/>

</div>
<script>
   $("#colnn").spectrum({
        preferredFormat: "hex",
        showInput: true,
        chooseText: "OK",
        cancelText: "Отмена"
    });
</script>
%.Color%
</div>
Но по итогу инициализируется все нормально значением из свойства класса, а обратно не возвращает когда меняю цвет. Метод изменения цвета при этом запускается а свойство Color остается без изменений.
Наверное что-то простое упустил. :D :D :D
а, у меня метод SetColor получает цвет через параметр color

Код: Выделить всё

if (!$params['color']) return;

$color = strtolower($params['color']);
$color = preg_replace('/^#/','',$color);

$transform = array(
    'red'=>'ff0000',
    'green'=>'00ff00',
    'blue'=>'0000ff',
    'white'=>'ffffff'
);

if (isset($transform[$color])) {
    $color = $transform[$color];
}

if ($color == '000000') {
    $this->callMethod('turnOff');
} else {
    $this->setProperty('color',$color);
    $this->callMethod('turnOn');
}
SlavaAf
Сообщения: 59
Зарегистрирован: Вс июл 26, 2020 6:52 pm

Re: цвет RGB

Сообщение SlavaAf »

Этот текст очень помог, все заработало, огромное спасибо!!!
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm

Re: цвет RGB

Сообщение Divan »

Статья на форуме про колорпикер

Посмотреть видео
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Ответить