Слайдер для сцен

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Слайдер для сцен

Сообщение nick7zmail » Пн окт 03, 2016 6:24 am

foxvlad писал(а): При таком коде значение после выбора сбрасывается на первое например выбираем "75" значение меняется на 75, а выпадающем списке опять стоит 100

как это все дело подвязать к например к %ThisComputer.volumeLevel%

Нужны знатоки Javascript
Обязательно попробую к обычному слайдеру применить стиль...как время будет....

А в вашем случае можно обойтись без javascript...я не уверен - будет ли это на сценах работать, обязательно дома попробую тоже....пока что на словах)) у option есть такое условие - selected (вроде)...и чтобы связать со свойством - надо чтобы этот selected был (или не был) в зависимости от свойства в определенном option. Еще раз повторюсь - не знаю, будет это работать или нет...но попробовать стоит)) сейчас у меня возможности проверить нет, но если даже не будет работать - может хоть на мысль вас натолкнет

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

<option value="значение" [#if gg('объект.свойство')=='значение'#]selected[#endif#]>Надпись</option>     
Вообще не факт что взлетит)) если не сработает - то дома попробую че нить с js накидать.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
foxvlad
Сообщения: 287
Зарегистрирован: Пн сен 22, 2014 3:18 pm
Откуда: Сочи
Благодарил (а): 78 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Слайдер для сцен

Сообщение foxvlad » Пн окт 03, 2016 9:56 pm

Просто если слайдер брать из меню, то он на сцены вставляется каждый слайдер страничкой через iframe.

А через яву, я по вставлял нормально и слайдеры и кнопки, осталось вопрос решить с вы подающими списками.

Ява нужна чтобы запрос отправить при смене.
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Ср июн 14, 2017 11:09 pm

Неплохая работа, довольно стильно и симпатично! Подскажите, в скрипте для кнопок "+", "-", "on", "off" идет обработка сценария с сылкой на объекты rx51, rx52 и т.д. Что это за объекты и какой php они содержат? И еще, можно небольшое описание того, что происходит в скрипте для слайдера? Спасибо!
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Вт июн 20, 2017 11:00 pm

Доброго времени суток! Может топикстартер, или кто знает, поможет мне в решении задачки. Сделал слайдеры, такие же как у автора.
https://www.dropbox.com/s/qm4tyv1zzeb8rhy/1.JPG?dl=0
Есть 2 объекта: первый для диммера в «меню управления», называется dim_livingroom; второй для слайдера сцены dliv_1.
https://www.dropbox.com/s/wjqa8217wq2o3wx/2.JPG?dl=0
Благодаря товарищу Chainik, который помог мне разобраться, в объекте dim_livingroom создал свойство dimvalue и в php слайдера записал такой вот код:
$dim1=gg('dim_livingroom.dimvalue');
$command="http://192.168.1.14/sec/?cmd=13:".$dim1;
file_get_contents($command);
И все заработало как часы, но из «меню управления».
Теперь пробую сделать диммер из слайдера на сцене. Для этого создал второй объект dliv_1. У него создаю также свойство value и метод, в котором пишу такой же код:
https://www.dropbox.com/s/sngds1ku2t5fdsg/3.JPG?dl=0
У foxvald в JS для слайдера написан был код. Ну я по образу и подобию попробовал сделать также, но уже со своим объектом:
https://www.dropbox.com/s/jfg1c7jorq437za/4.JPG?dl=0
В УСТРОЙСТВА-MegaD привязал второй связанный объект dliv_1, свойство value и метод.
https://www.dropbox.com/s/uzwbxjhkgw078rw/5.JPG?dl=0
Ну и конечно же ничего не взлетело… Как я понимаю, мне нужно задать диапазон изменения значения слайдера от 0 до 255. Если мои действия до были верны и это так, то, собственно, вопрос – как это сделать? Очень надеюсь на вашу помощь. Спасибо!
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Сб июн 24, 2017 5:18 pm

Итак, пробовал создавать отдельный элемент на сцене с js кодом - не помогло. Пробовал объявлять анонимную функцию через var onchangeWidth1 = function () {} - не помогло. Куда копать? Косяк в скрипте или может дело в неправильном его применении?
Есть строчка в коде, которую не могу понять:
xmlhttp.send(null);
Почему send(null)?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Слайдер для сцен

Сообщение Chainik » Сб июн 24, 2017 10:48 pm

На вопросы не отвечу (ввиду некомпетентности), но хочу напомнить, что есть такой тип элемента сцены, как "Menu Control".
Он дублирует элементы меню (в т.ч. и слайдер).
Может быть вариант не идеальный, поскольку требует обязательного наличия соответствующего элемента в меню, но хотя бы лучше, чем ничего...
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Чт июн 29, 2017 11:35 pm

Приветствую! Добрался-таки до форума. Снова есть вопросы по слайдеру для сцен. Убрал ненужные кнопки (для меня) со слайдера, предложенного foxvald, оставил только слайдер (на скрине в самом низу).
https://www.dropbox.com/s/i61bp6slfhp1tgx/1.JPG?dl=0
Итак, вот атрибуты элемента input:

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

<input type="range" oninput="onchangeWidth1()" class="rangeG" id="rangeP1" value="%dim_livingroom.dimvalue%" min="0" max="255" step="5"/>
В отличии от предыдущего варианта, я добавил метод и связал слайдер "меню управления" с методом. Код все тот же:

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

$dim1=gg('dim_livingroom.dimvalue');
$command="http://192.168.1.14/sec/?cmd=13:".$dim1;
file_get_contents($command);
Теперь при изменении значения в «меню управления» меняется положение ползунка и на сцене, что очень хорошо.
Слайдер на сцене тепрь тоже работает, но не совсем так, как хотелось бы. Вот переписаный ajax:

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

function onchangeWidth1() {
url_string ='http://192.168.1.14/sec/?cmd=13:' + document.getElementById("rangeP1").value;
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url_string, true);
xmlhttp.send(null); 
}
Вся проблема в том, что теперь значение со слайдера никуда не пишется, а просто отправляется на нужный порт Меги. Т.е., если менять положение ползунка на сцене, то ни в «меню управления», ни на другой панели не будет видно положение ползунка. Что очень плохо.
Собственно вопрос: как в XmlHHTPRequest делать запрос не напрямую в устройство, а через объект? Т.е., задача стоит в том, чтобы значение ползунка со слайдера сцены писать в свойство какого-нибудь объекта. Идея, предложенная Smolalex у меня не заработала (что-то может я не так сделал?).

P.S. Как вставить картинки, чтобы они были... Картинками? С дропбокса это невозможно, я так понял.
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Чт июн 29, 2017 11:39 pm

Chainik писал(а):На вопросы не отвечу (ввиду некомпетентности), но хочу напомнить, что есть такой тип элемента сцены, как "Menu Control".
Он дублирует элементы меню (в т.ч. и слайдер).
Может быть вариант не идеальный, поскольку требует обязательного наличия соответствующего элемента в меню, но хотя бы лучше, чем ничего...
У меня причины все те же, что у foxvald. Хочется больше рюшечек)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Слайдер для сцен

Сообщение sergejey » Вт июл 04, 2017 2:35 pm

попробуйте такой код функции:

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

function onchangeWidth1() {
 ajaxSetGlobal('dim_livingroom.dimvalue',$('#rangeP1').val());
} 
За это сообщение автора sergejey поблагодарил:
profx5016 (Пт июл 14, 2017 7:13 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Слайдер для сцен

Сообщение profx5016 » Пт июл 14, 2017 7:28 pm

sergejey писал(а):попробуйте такой код функции:

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

function onchangeWidth1() {
 ajaxSetGlobal('dim_livingroom.dimvalue',$('#rangeP1').val());
} 
Спасибо огромное! Все заработало!
Если кто-то будет себе делать такой слайдер-диммер, то объект dliv_1, который я создавал ранее, не нужен. JS-код будет иметь следующий вид:

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

function onchangeWidth1() {
 ajaxSetGlobal('dim_livingroom.dimvalue',$('#rangeP1').val());
url_string ='http://192.168.1.14/sec/?cmd=13:' + document.getElementById("rangeP1").value;
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url_string, true);
xmlhttp.send(null); 
}
Ответить