【问题标题】:Randomize logo color and change CSS link color accordingly随机化徽标颜色并相应更改 CSS 链接颜色
【发布时间】:2014-02-14 08:40:43
【问题描述】:

此功能随机化网站的徽标。我正在尝试做一个条件语句来相应地改变 a:hover 颜色。

如果选择蓝色,a:hover, .current-menu-item 应该有color: blue;

实现这一点的最佳方法是什么?

function logoChange() { 
var description = new Array ();
description[0] = "images/logos/blue.png";
description[1] = "images/logos/green.png";
description[2] = "images/logos/orange.png";
description[3] = "images/logos/purple.png";
description[4] = "images/logos/red.png";
description[5] = "images/logos/yellow.png";
var size = description.length
var x = Math.floor(size*Math.random())
document.getElementById('logo').src=description[x];    
}
window.onload=logoChange;


if (logo blue is chosen)
  {
  <style>a:hover, .current-menu-item {color: blue;}</style>
  }

elseif (logo green is chosen)
  {
  <style>a:hover, .current-menu-item {color: green;}</style>
  }

and so on...

【问题讨论】:

  • 最好的方法是为不同的配色方案定义classes,然后将class应用于body元素。示例: @987654324 @和 @987654325 @等。
  • 是的,这似乎过于复杂。创建一个 div,然后设置类,然后在 CSS 中分配适当的图像和颜色以及悬停状态。然后你的 JS 只需要应用一个随机的类名。

标签: javascript jquery html css


【解决方案1】:

我所做的是创建了一个包含所有可能颜色的数组。注意颜色索引如何与描述索引匹配。所以如果变量x 是3,那么purple.png 就是logo,purple 就是css 的紫色。

function logoChange() { 
var description = new Array ();
description[0] = "images/logos/blue.png";
description[1] = "images/logos/green.png";
description[2] = "images/logos/orange.png";
description[3] = "images/logos/purple.png";
description[4] = "images/logos/red.png";
description[5] = "images/logos/yellow.png";
var size = description.length;
var x = Math.floor(size*Math.random());
document.getElementById('logo').src=description[x];

var colors = ['blue', 'green', 'orange', 'purple', 'red', 'yellow'];

var thecolor = colors[x];

$('.current-menu-item').css({color: thecolor});

$("a").hover(function () {
    $(this).css({
        color: thecolor
    });
}, function () {
    $(this).css({
        color: 'blue'   // change 'blue' to whatever the normal color is without hover
    });
});

}

logoChange();

【讨论】:

  • 当我将它应用到 a 而不是 a:hover 时它正在工作。一定是某些东西被覆盖了......
  • @Felix 另外,我猜 jquery 可能不会让您将 a:hover 定位为选择器。请参阅此 stackoverflow.com/questions/4847329/… 。所以你可以做的仍然是使用whats there作为当前菜单项,但是对于a,做$('a').hover(function() { $(this).css({color: thecolor});
  • 我收到此错误消息:“未捕获的 TypeError:无法设置属性 'src' of null”。没有“$('a').hover(function() { $(this).css({color: thecolor}); });”它正在工作......
  • 现在它可以工作了,是你删除了onload。我把它放回去,瞧。感谢您的帮助!
猜你喜欢
  • 2015-01-25
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2018-04-15
  • 2021-10-08
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多