Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему возвращает значения RGB каналов? (https://javascript.ru/forum/jquery/67237-pochemu-vozvrashhaet-znacheniya-rgb-kanalov.html)

destus 05.02.2017 18:49

Black_Star,
потому что тут
Цитата:

initialH2 = initialH2 === 360 ? 11 : initialH2 + 20 < 360 ? initialH2 + 20 : 360;
стоит + 20, а должно быть +10 по твоим условиям.
Цитата:

1->2 2->3; 2->3 3->4....
http://pixs.ru/showimage/screenpng_4660615_25050124.png
Цитата:

когда значение h канала становиться >360 то прибавляется сколько возможно а остаток прибавляет к нулю
initialH1 = initialH1 + 10 < 360 ? initialH1 + 10 : initialH1 + 10 - 360;
initialH2 = initialH2 + 10 < 360 ? initialH2 + 10 : initialH2 + 10 - 360;

Black_Star 05.02.2017 19:54

Согласен, мой косяк. Был не внимателен.Спасибо. А как быть если числа в hsl каналах совершенно разные? (Зависимость та же heu канал следующего блока +10) Вот такие блоки к примеру как перебирать ?
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <style>
        .first_st1{
            fill: hsl(1, 84%, 61%);
        }
        .first_st2{
           fill: hsl(358, 83%, 54%);
        }
        .first_st3{
            fill: hsl(350, 65%, 40%);
        }
 
        .second_st1{
            fill: hsl(11, 84%, 61%);
        }
        .second_st2{
            fill: hsl(8, 83%, 54%);
        }
        .second_st3{
            fill: hsl(0, 65%, 40%);
        }
    </style>
</head>
<body>
    <svg width="600" height="240">
        <rect class="first_st1" width="80" height="80" x="0" y="0"></rect>
        <rect class="first_st2" width="80" height="80" x="0" y="80"></rect>
        <rect class="first_st3" width="80" height="80" x="0" y="160"></rect>
 
        <rect class="second_st1" width="80" height="80" x="160" y="0"></rect>
        <rect class="second_st2" width="80" height="80" x="160" y="80"></rect>
        <rect class="second_st3" width="80" height="80" x="160" y="160"></rect>
    </svg>
</body>
</html>

destus 05.02.2017 20:01

Black_Star,
Блоков всегда будет 6? Можно также хранить начальное состояние каждого блока в виде обьекта в каком-то общем массиве и в цикле в зависимости от индекса, доставать этот обьект, выводить из него последние два параметра, а hue вычислять также по формуле.

Black_Star 05.02.2017 20:13

У меня там на самом деле две картинки из 11 "блоков" :) и в процессе анимации цвета одной картинки переходят в другую. (каждые 2 сек).

destus 06.02.2017 04:49

Black_Star,
Да в принципе это не важно, сколько их.... Алгоритм от этого не изменится, изменится длина массива.
Ну или конвертором пользуйся как писали выше, но я бы не стал :)


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