Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2019, 15:21
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

самопроизвольный перевод цвета из HEX в rgb
Привет! Есть скрипт который должен присвоить цвет элементу.

myElement.style.backgroundColor = '#ee4830';

Далее эти данные должны уйти на сервер, но сервер не принял, обнаружил проблему, что в консоле цвет уже не тот, rgb(238, 72, 48);

Долго искал где ошибка, но не нашел ее. Могу сказать, что если цвет задать 'green' - то в консоле он тоже green. Если цвет изменить на #fff830, то в консоле element.style = rgb(255, 248, 48);

Подскажите как такой вопрос решать?

Последний раз редактировалось TheOwl, 15.01.2019 в 15:38.
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2019, 15:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И что тут изменилось самопроизвольно, rgb(255, 248, 48) это и есть #fff830, просто представление цвета иное, вам какая разница?
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2019, 15:30
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

сервер принимает только в формате HEX
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2019, 16:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну сделайте тогда так:

myElement.setAttribute('style', 'background-color:#ee4830');
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2019, 16:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от TheOwl
сервер принимает только в формате HEX
А что это означает?
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2019, 16:32
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

может не правильно выразился, сервер принимает и проверяет на соответствие массиву цветов, а у него они HEX;

c помощью setAttribute все получилось, спасибо.
Интересно было бы разобраться почему так получается, что цвет переводится в другое представление.
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2019, 16:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от TheOwl
может не правильно выразился, сервер принимает и проверяет на соответствие массиву цветов, а у него они HEX;
Что значит принимает? Сервер может принять форму. Или это и делается отсылкой html-кода ему? Да и какие проблемы конвертировать цвет из любого представления в другой?
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2019, 16:48
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

да отправляю форму, через XMLHttpReauest, responseType=json...
Тут интересный момент, через setAttribute в консоле в стилях уже те значения что мне и нужны. Но с сервера приходит ответ:
[{"fieldName":"fireball-color","fieldValue":"rgb(238, 72, 48)","errorMessage":"should be one of [#ee4830,#30a8ee,#5ce6c0,#e848d5,#e6e848]"}]
Я тут подумал не может ли быть проблема в тот момент когда я input-у присваиваю значение...
playerFireball.style.backgroundColor = playerFireball.style.backgroundColor || '#ee4830';


playerFireball.style.backgroundColor = '#ee4830';
- но даже если так, то input.value будет rgb(238, 72, 48)

Последний раз редактировалось TheOwl, 15.01.2019 в 16:49. Причина: дополнение
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2019, 16:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если отправление то чего, определили цвет элементу, затем его у него же получили о отправили, или как? Если вставлять в поле формы значение #fff830, то оно никак не превратится в rgb(255, 248, 48), сервер получит ровно то, что имеет value поля формы.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2019, 17:09
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

Я наверное не смогу все объяснить, посмотри...

это мой учебный преокт https://github.com/Sunantby/my-projects/tree/for-forum

data.js
'use strict'; 
 
var playerEyes = document.querySelector('.overlay').querySelector('.wizard-eyes');
var playerCoat = document.querySelector('.overlay').querySelector('.wizard-coat');
var playerFireball = document.querySelector('.overlay').querySelector('.setup-fireball');
var inputColorCoat = document.querySelector('.input-color-coat');
var inputColorFireball = document.querySelector('.input-color-fireball');
var inputColorEyes = document.querySelector('.input-color-eyes');
      playerFireball.setAttribute('style', 'background-color:#ee4830');
(function() {
 
 
        window.writeObj = function() {
            playerColorsSetup.coat = inputColorCoat.value;
            playerColorsSetup.fireball = inputColorFireball.value;
            playerColorsSetup.eyes = inputColorEyes.value;
        };
 
        window.writeSetup = function () {
            playerCoat.style.fill = playerCoat.style.fill || 'rgb(101, 137, 164)';
            playerEyes.style.fill = playerEyes.style.fill || 'blue';
            playerFireball.style.backgroundColor = playerFireball.style.backgroundColor || '#ee4830';
        };
 
        window.writeForm = function () {
            inputColorCoat.value = playerCoat.style.fill;
            inputColorEyes.value = playerEyes.style.fill;
            inputColorFireball.value = playerFireball.style.backgroundColor;
        };
 
})();
// выбираем цвет нашего игрока
window.writeSetup();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести из RGB в HEX Telnet Общие вопросы Javascript 6 21.06.2019 20:57
Определение цвета html Hex и RGB novitocnaforume Общие вопросы Javascript 10 11.10.2015 14:26
перевод из HSB в RGB cyber Events/DOM/Window 15 28.05.2012 23:23