Как связать favicon со случайным цветом CSS?

Я пытаюсь сделать так, чтобы мой значок был того же цвета, что и плашечный цвет на моем сайте. Цвет плашек на моем сайте меняется случайным образом между 3 цветами при каждом обновлении (с использованием JavaScript). Я почти смог заставить свои значки произвольно меняться, но я не уверен, как вместо этого связать их с определенными цветами в моем javascript. Проверьте мой сайт здесь.

HTML & PHP:

<head>
<link rel="shortcut icon" type="image/ico" href="../images/favicon_<?php echo rand(1,3); ?>.ico"/>
</head

Javascript:

var colors = ['#FFCB80', '#5A53EA', '#65CE9C'];
var random_color = colors[Math.floor(Math.random() * colors.length)];

$(document).ready(function() {
   $('.tag').css('color', random_color);
   $('#nav a:hover').css('color', "black");
   $('#nav a:link').css('color', random_color);
   $('#nav a:visited').css('color', random_color);
   $('.number').css('color', random_color);

});

2 ответа

Просто используйте случайное число, сгенерированное в php-коде в javascript.

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

Кроме того, я увидел, что ваш HTML-код печатает это буквально:

<link rel="shortcut icon" type="image/ico" href="../images/favicon_<php echo rand(1,3); ?>.ico">

Пожалуйста, проверьте это, потому что кажется, что страница не обрабатывается PHP.

HTML & PHP:

<?php
$randomIndex = rand(1,3); // From 1 to 3
?>

<head>
<link rel="shortcut icon" type="image/ico" href="../images/favicon_<?php echo $randomIndex; ?>.ico"/>
<script>
var random_color_index = <?php echo $randomIndex-1; ?>; // From 0 to 2
</script>
</head>

Javascript:

var colors = ['#FFCB80', '#5A53EA', '#65CE9C'];
var random_color = colors[random_color_index]; // From 0 to 2

$(document).ready(function() {

$('.tag').css('color', random_color);
$('#nav a:hover').css('color', "black");
$('#nav a:link').css('color', random_color);
$('#nav a:visited').css('color', random_color);
$('.number').css('color', random_color);

С помощью Javascript вы можете передать свои new url а также id вашей таблицы стилей ссылки, чтобы функционировать ниже, чтобы регулярно обновлять внешние CSS. Пожалуйста, просмотрите этот:

function changeHref(url, id) {
  var h = document.getElementsByTagName('head')[0],
    mylink = document.getElementById(id);
  if (!mylink) {
    mylink = document.createElement('link');
    mylink.id = id;
    mylink.rel = 'stylesheet';
    mylink.type = 'text/css';
  }
  mylink.href = url;
  h.appendChild(mylink);
  console.log(mylink);
}
changeHref("//yourUrl", "yourlinkId");

Другие вопросы по тегам