Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
1

Динамическое изменение цвета фона

02.03.2017, 14:21. Показов 10875. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно релизовать блок (После ввода, фигура не важно), при вхождении курсора и дальнейшем движении по нему цвет фона этого блока должен плавно менятся (не важно какие цвета, скорость и повторения).
Если кому не трудно и кто знает как это решить прощу помочь.
Нужно завтра в обед.
Сейас буду пытаться сам найти решение, но пока что сомневаюсь что выйдет.
надеюсь кто то поможет.
Заранее спасибо.

Добавлено через 1 минуту
Использовать можно JS, CSS и HTML;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2017, 14:21
Ответы с готовыми решениями:

Изменение фона - плавное изменение цвета
Не фурычит плавное изменение цвета... Если переменные r g b через рандом то всё работает отлично...

Динамическое изменение фона страницы
Как реализовать смену фона через определенный промежуток времени?

Изменение цвета фона по клику на чекбокс
Помогите, пожалуйста, решить проблему. Нужно, чтобы при отмеченном чекбоксе цвет фона родительского...

Изменение цвета фона и строки состояния
Напишите код таким образом, чтобы при наведении на фразу «строка состояния» (Рис. 1), цвет фона...

14
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 14:35 2
HTML5
1
<body></body>
Javascript
1
2
3
4
5
6
7
8
9
function getRandomColor() {
  var color = [];
  while (color.length < 3) color.push(Math.floor(Math.random() * 255));
  return 'rgb('+color.join(', ')+')';
}
 
document.body.onmousemove = function() {
  document.body.style.backgroundColor = getRandomColor();
}
ПРЕДУПРЕЖДЕНИЕ! Людям, страдающим приступами эпилепсии - не запускать код!
0
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 15:13  [ТС] 3
Balanaar, Спасибо. Будет с чего начать работу. Не знаете как сделать плавное изменение цвета?

Добавлено через 8 минут
Balanaar, Спасибо. Будет с чего начать работу. Не знаете как сделать плавное изменение цвета?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 15:19 4
Что понимать под "плавным изменением цвета"? Не совсем понятно.
0
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 15:20  [ТС] 5
Balanaar, что бы когда ведешь курсором не повялялся новый цывет а что бы старый перетекал в новый
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 15:32 6
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var currentColor = [255, 255, 255];
var nextColor = getRandomColor();
var currentStep = 0;
var steps = 100;
 
function getRandomColor() {
  var color = [];
  while (color.length < 3) color.push(Math.floor(Math.random() * 255));
  return color;
}
 
document.body.onmousemove = function() {
  currentStep++;
  document.body.style.backgroundColor = 'rgb( ' + currentColor.map(function(e,i){
    return Math.floor(e + (nextColor[i] - e) * currentStep / steps);
  }).join(', ') + ')';
  if (currentStep == 100) {
    currentStep = 0;
    currentColor = nextColor;
    nextColor = getRandomColor();
  }
}
Так?
0
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 15:38  [ТС] 7
Balanaar, подксскажите как его привести в выполнение из html файла, он у меня в .js лежит.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 15:42 8
Поместите код между тегами <script> после вашей разметки.

Добавлено через 25 секунд
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<body></body>
<script>
var currentColor = [255, 255, 255];
var nextColor = getRandomColor();
var currentStep = 0;
var steps = 100;
 
function getRandomColor() {
  var color = [];
  while (color.length < 3) color.push(Math.floor(Math.random() * 255));
  return color;
}
 
document.body.onmousemove = function() {
  currentStep++;
  document.body.style.backgroundColor = 'rgb( ' + currentColor.map(function(e,i){
    return Math.floor(e + (nextColor[i] - e) * currentStep / steps);
  }).join(', ') + ')';
  if (currentStep == steps) {
    currentStep = 0;
    currentColor = nextColor;
    nextColor = getRandomColor();
  }
}
</script>
Добавлено через 1 минуту
Или вам надо файл подключить?
0
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 15:43  [ТС] 9
Balanaar,
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script>
    var currentColor = [255, 255, 255];
    var nextColor = getRandomColor();
    var currentStep = 0;
    var steps = 100;
 
    function getRandomColor() {
        var color = [];
        while (color.length < 3) color.push(Math.floor(Math.random() * 255));
        return color;
    }
 
    document.body.onmousemove = function() {
        currentStep++;
        document.body.style.backgroundColor = 'rgb( ' + currentColor.map(function(e,i){
                return Math.floor(e + (nextColor[i] - e) * currentStep / steps);
            }).join(', ') + ')';
        if (currentStep == 100) {
            currentStep = 0;
            currentColor = nextColor;
            nextColor = getRandomColor();
        }
    }
</script>
</body>
</html>
так?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 15:48 10
Лучший ответ Сообщение было отмечено ExXtaZzyUA как решение

Решение

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
</body>
<script>
    var currentColor = [255, 255, 255];
    var nextColor = getRandomColor();
    var currentStep = 0;
    var steps = 100;
 
    function getRandomColor() {
        var color = [];
        while (color.length < 3) color.push(Math.floor(Math.random() * 255));
        return color;
    }
 
    document.body.onmousemove = function() {
        currentStep++;
        document.body.style.backgroundColor = 'rgb( ' + currentColor.map(function(e,i){
                return Math.floor(e + (nextColor[i] - e) * currentStep / steps);
            }).join(', ') + ')';
        if (currentStep == 100) {
            currentStep = 0;
            currentColor = nextColor;
            nextColor = getRandomColor();
        }
    }
</script>
</html>
Так

Добавлено через 3 минуты
Только в 25й строке замените 100 на steps.
Так грамотнее будет.
1
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 15:56  [ТС] 11
Balanaar, Все шикарно. Последнее, что нужно поменять что бы менялся bg не у body, а у блока div который у меня написан?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 15:59 12
А какой div у вас написан?
1
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 16:24  [ТС] 13
Balanaar,
HTML5
1
2
3
<div class="block1">Lorem ipsum dolor sit amet, consectetuer
    adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet
    dolore magna aliguam erat volutpat.</div>
Класс из css
CSS
1
2
3
4
5
6
.block1 {
    margin-left: 30%; /* Отступ слева */
    width: 40%; /* Ширина слоя */
    background: #fc0; /* Цвет фона */
    padding: 10px; /* Поля вокруг текста */
}
Добавлено через 22 минуты
Balanaar, ладно, я ращберусь. Спасибо ща помощь. Сейсас буду в вашем коде копаться)
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.03.2017, 16:26 14
Окончательно: http://codepen.io/anon/pen/pegMWg
HTML5
1
2
3
<div class="block1">Lorem ipsum dolor sit amet, consectetuer
    adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet
    dolore magna aliguam erat volutpat.</div>
CSS
1
2
3
4
5
6
.block1 {
    margin-left: 30%; /* Отступ слева */
    width: 40%; /* Ширина слоя */
    background: #fc0; /* Цвет фона */
    padding: 10px; /* Поля вокруг текста */
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var block = document.getElementsByClassName('block1')[0];
var currentColor = window.getComputedStyle(block).getPropertyValue('background-color').replace(/rgb\((.+)\)/g, '$1').split(', ').map(function(e){return parseInt(e);});
var nextColor = getRandomColor();
var currentStep = 0;
var steps = 100;
 
function getRandomColor() {
  var color = [];
  while (color.length < 3) color.push(Math.floor(Math.random() * 255));
  return color;
}
 
block.onmousemove = function() {
  currentStep++;
  block.style.backgroundColor = 'rgb( ' + currentColor.map(function(e,i){
    return Math.floor(e + (nextColor[i] - e) * currentStep / steps);
  }).join(', ') + ')';
  if (currentStep == steps) {
    currentStep = 0;
    currentColor = nextColor;
    nextColor = getRandomColor();
  }
}
UPD: Внёс поправку.
1
15 / 15 / 6
Регистрация: 30.11.2016
Сообщений: 101
02.03.2017, 16:46  [ТС] 15
Balanaar, Хочу от вас детей)
спасибо
0
02.03.2017, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2017, 16:46
Помогаю со студенческими работами здесь

Изменение цвета фона страницы с интервалом времени
Почему не меняется цвет? Текст выводится, а цвет - никак. Задание на ночь задали... (цвета причем...

Изменение цвета фона тега input после заполнения
Подскажите, как изменить фон тега input, после его заполнения.

Изменение цвета фона страницы при нажатии на кнопку
народ, подскажите, пожалуйста какую функцию надо написать. хочу сделать так, чтобы при нажатии...

Смена цвета фона кнопкой
Всем привет! Как нажатием на кнопки изменить цвет области div, а не всего фона? &lt;html&gt; &lt;head&gt;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru