Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
177 / 116 / 22
Регистрация: 16.03.2017
Сообщений: 1,376
1

Узнать задан ли color

03.01.2021, 20:28. Просмотров 933. Ответов 4
Метки нет (Все метки)

Добрый день, подскажите плиииз.

Пытаюсь создать "мигание" для любого элемента "с восстановлением".
Для этого задаю цвет на едко-красный, а потом восстанавливаю "на прошлый".

Прошлый color сохранял через
Javascript
1
var color_old = getPropertyValue(el).color
Оказывается есть элементы, где я "забыл" указать color и он берется у "предка".

Если "мигаю" предка, то мигают все подчиненные. (3 кнопки на подложке мигают вместе с подложкой)
Если мигаю того кто был без color (кнопку), то похоже через getPropertyValue хватаю цвет ПРЕДКА! А не null...
При восстановлении цвет задается в цвет предка и миганием предка уже не мигает (при мигании "подложки" уже мигают только 2 кнопки)

В хром-закладке стилей Computed видно что в списке НЕТ color!
Как мне узнать что у элемента нет color ни в свойства, ни в стилях и он его берет из дефолтов/предка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2021, 20:28
Ответы с готовыми решениями:

Узнать угол вершины конуса, если задан радиус основания и высота
Дана высота конуса и угол его вершины. Узнать радиус основания. А так же узнать угол вершины если...

Задан треугольник с точкой, надо узнать, лежит ли точка в треугольнике или нет. Написать на делфи...
Лежит ли точка M(Xm,Ym) внутри треугольника, заданного координатами своих вершин A(Xa,Ya),...

Как создать массив со строками - string, string, Color Clr = Color.Black?
Как создать массив со строками - string, string, Color Clr = Color.Black? Имеется массив....

Понижение количества цветов с True color (32 bit) на High color (16 bit)
здр.. какие особенности и преимущества при понижении количества цветов с True color (32 bit) на...

4
555 / 414 / 151
Регистрация: 26.05.2016
Сообщений: 2,344
06.01.2021, 14:16 2
andyj, установите в скрипте style.color или берите window.getComputedStyle(element).style.color
0
177 / 116 / 22
Регистрация: 16.03.2017
Сообщений: 1,376
07.01.2021, 00:26  [ТС] 3
Цитата Сообщение от atanov Посмотреть сообщение
установите в скрипте style.color или берите window.getComputedStyle(element).style.color
У элемента цвет может быть задан либо стилем, либо классом, либо ПРЕДКОМ/подложкой!
window.getComputedStyle(element).style.color вернет цвет даже предка! А мне он не нужен!!!
Если проверить строку стиля (простым парсингом) еще легко, то как узнать задан ли цвет в классе?

Не по теме:

Свою задачу с миганием решил тем что запоминаю строку стилей До мигания, потом добавляю к строке стилей новые (которые перекрывают), а потом возвращаю оригинальную строку... Но все еще не понял как бы я мог более гибко это менять! Могут случиться ситуации когда придется перекрывать даже !important свойства. Или просто понадобиться узнать цвет "без учета предка"



и я ошибся... (недосмотрел)
Хром свойства-список стилей элемента показывает цвет и даже показывает что он задан в "классе предка/подложки"
1
393 / 146 / 31
Регистрация: 26.11.2019
Сообщений: 385
07.01.2021, 09:08 4
andyj, я бы всё через классы сделала, а потом el.classList.toggle('red').
0
177 / 116 / 22
Регистрация: 16.03.2017
Сообщений: 1,376
07.01.2021, 11:57  [ТС] 5
Цитата Сообщение от Peskova_Sveta Посмотреть сообщение
я бы всё через классы сделала
Вы не поняли ТЗ!

Задача (была) создать функцию типа

Javascript
1
2
3
4
5
6
7
function blink(el){
   //запоминаем стили el которые надо изменить
   // меняем стили на свои - цвет рамки, фон, тень
   setTimeOut(function(){
       // восстанавливаем старые стили из сохраненных
   }, 600)
}
при этом нам достаточно указать el в функцию... причем el создавали не мы, и не нам ему назначать классы. У него УЖЕ может быть свой класс red, который не правильно будет воспринят при добавлении второго.

Сейчас решил задачу запоминанием прямой строки стилей до изменения (el.style.cssString... могу ошибиться) и заменой на свою строку.

...а хотелось бы управлять стилями ПОШТУЧНО! КОДОМ! Через:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 1) запоминаем нужные параметры из стиля элемента! 
// здесь и ошибка - если нет цвета ВООБЩЕ у элемента, 
   //то мне дают цвет стиля/класса ДИВа/подложки в котором лежит нужный мне элемент!
   // Тот цвет который он "наследует"!
 
el.style.color = 'red'
...
 
// восстанавливает
if(color_old == null){
  delete el.style.color // тогда ВООБЩЕ не будет цвета у элемента! И вернется цвет предка, 
    // а нет тот который был НА МОМЕНТ мигания у элемента!
      // без этого мигаю кнопкой = "ура вернуло черную", 
     // мигаю основой - все кнопки мигают кроме той что мигнул раньше - она теперь "пожизненно" будет черной
}else{
  el.style.color = color_old
}
Уверен что кроме "мигания" подобный метод можно еще где-то использовать!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2021, 11:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Оператор "?" невозможно применить к операндам Color? и Color
Компилятор агрится на эту строчку в коде: ... new SolidColorBrush(color ?? new Color() { R =...

"Color(#FFFFFF)" не является допустимым значением для свойства "Color"
Есть ResourceDictionary со стилями. В приложении добавлен через App.xaml <Application.Resources>...

Задан текст, нужно узнать, стоят между ,буквами "a" и "z" цифры
Вот полное задание, помогите пожалуйста написать текст программы: Задан текст, состоящий из цифр...

private Dictionary<TabPage, Color> TabColors = new Dictionary<TabPage, Color>();
Собственно выдает ошибку &quot;TabPage&quot; - неоднозначная ссылка между &quot;MdiTabControl.TabPage&quot; и...

В чём ошибка: "Владелец не задан или задан неверно" для подчиненных справочников?
Создаю справочники - Институт, Факультет. Справочник &quot;факультет&quot; подчинен к справочнику...

Use Value As Color
Всем привет. блин ни как разобраться не могу вот код red := 255:0:0; blue := 0:0:255; @If...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.