Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 31.05.2017, 08:01
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

точно Math.round же в первом примере
конечно же Math.floor надо
незаметил
Ответить с цитированием
  #22 (permalink)  
Старый 31.05.2017, 08:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от j0hnik
конечно же Math.floor надо
не обязательно, можно и Math.round - но с Math.floor лучше. а почему вы в курсе?

<head>
  <meta charset="utf-8">
</head>
<body>
  <div id="id" style="display: block; width: 200px; height: 200px; border: 1px solid grey;"></div>
  <script>
  var rand2;
    document.getElementById("id").onmouseover = function(){
    var color = ['red','green','blue','orange','yellow','violet','cyan']
    var rand = Math.round(Math.random()*color.length-1);
    if (rand2 === rand) rand = ++rand%color.length;
    this.style.backgroundColor = color[rand];
    rand2 = rand;
  };
</script>
</body>
Ответить с цитированием
  #23 (permalink)  
Старый 31.05.2017, 12:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
не обязательно, можно и Math.round - но с Math.floor лучше. а почему вы в курсе?
Предполагаю что крайние цвета будут более редкие. + в вашем примере лишняя мат. операция

Math.floor - просто отрезает дробную часть оставляя целую, а Math.round округляет по правилам банка
Интересный ход с процентом от остатка делимое которого даже если и будет больше делителя на 1 все равно мы никак промахнемся. (да и как бы маскирует наш немножко кривой подход)
Тут можно применить много математических операций, разделит 2 потом прибавить 2 потом все это округлить и тоже не вылезти за диапазон. Но все равно в зависимости от от цвета который сейчас есть увеличивается вероятность выпадения цвета который мы получим применив к нему мат. операции которые мы используем. Вот это и есть единственный минус данной методики.
Ответить с цитированием
  #24 (permalink)  
Старый 31.05.2017, 14:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://jsperf.com - Ну вот это супер конечно тема. протестировал все что можно уже. смотрю тесты других людей запоминаю методы которые работают быстрей.
RegExp кстати почти везде самый медленный путь.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить класс к нужному элементу при наведении на определеные ссылки? crazygangster77 Events/DOM/Window 3 05.06.2013 02:19
Скрипт не работает при заходе на данную страницу, но работает при рефреше страницы foker jQuery 0 26.11.2012 12:27
Смена нескольких картинок при наведении Demoni Элементы интерфейса 8 28.04.2012 23:57
изменения рисунка при наведении курсора Kenan Bek Events/DOM/Window 24 19.12.2010 20:48
jQuery поменять CSS цвет для текста при наведении мышью (.text:hover) JooZ jQuery 16 15.11.2010 19:56