Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение оттенка (https://javascript.ru/forum/dom-window/32203-izmenenie-ottenka.html)

artygrand 07.10.2012 14:38

Изменение оттенка
 
Возможно ли как то сделать, что бы скрипт изменил цвета всех элементов на сайте, но сохранил яркость/контраст?

Например, сайт в оттенках синего, а сделать оранжевым.

Хранить все варианты цветов - не подойдет.

Your 07.10.2012 19:48

Создание разноцветного списка

Тема ниже...

artygrand 08.10.2012 10:20

Your, я же написал, что хранить все варианты цветов - не подойдет.

bes 08.10.2012 10:34

ищите закономерности, rgb(r, g, b) в помощь

Your 08.10.2012 10:35

artygrand, Вы сами поняли, что говорите?
Без генерации вам не справиться.

Можно из rgb перевести в 16 ричное представление.
0 -> 255.

Пройдя рекурсией.

artygrand 13.10.2012 11:38

Понятненько. А можно получить доступ к самому стилю и изменить его?
То есть, что бы все вновь созданные элементы тоже подвергались воздействию.

melky 13.10.2012 12:10

Цитата:

Сообщение от artygrand
Понятненько. А можно получить доступ к самому стилю и изменить его?

да, можно. главное, чтобы он был на том же домене.

artygrand 13.10.2012 15:50

Хм, в jquery с помощью .css не сами стили переписываются, а добавляются style="новый стиль" в элемент.

Какие еще есть варианты?

bes 13.10.2012 15:54

cssText

artygrand 13.10.2012 16:48

cssText тоже не то

нужна рабочая версия такого
window.getComputedStyle(elem,null).getPropertyValue("color") = 'rgb(0, 0, 0)';

хотя и она всего лишь поменяет у элемента стиль, а не сам стиль перепишет.

Кстати, melky, ты тут что то похожее решал. На чем остановился?

melky 13.10.2012 18:38

Цитата:

Сообщение от artygrand
Кстати, melky, ты тут что то похожее решал. На чем остановился?

ни на чём :) сделал анимацию, где анимирование происходит не элемента, а селектора. получилось намного быстрее, чем при анимировании свойства style (как по-обычному делают).

Ссылки по теме : всё, что нужно, находится на одной странице в спецификации.

пример обхода :
<style>

* { margin: 0; padding: 0; }

div { color: red; font-size: 20px; }

</style>

<style>

#div { border: 2px green solid; }

.div { padding: 5px; background-color: red; }

</style>

<div id="div" class="div">Я ДИВ</div>


<script>

var styles = document.styleSheets, i = 0, sheet, rules, b, rule;

while (i in styles) {
    sheet = styles[i];

    rules = sheet.cssRules;
    b = 0;

    while (b in rules) {
        rule = rules[b];
        alert( "Таблица стилей №   " + i + "\n\nПравило №  " + b + "\n\n Селектор : " + rule.selectorText + "\n\n Содержимое : " + rule.style.cssText );
        b++;
    }

    i++;
}
</script>


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