2014-02-14 46 views
1

该函数随机化网站的徽标。我试图做一个条件语句,相应地改变a:hover颜色。随机化标志颜色并相应地更改CSS链接颜色

如果选择蓝色,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... 
+0

最好的办法是为您的不同配色方案定义*类*,并将该类应用于* body *元素。例如:'.blue a:hover {color:blue;}'和'.green a:hover {color:green;}'等等。然后,当选择徽标时,只需将该类应用于body元素,然后繁荣,你就完成了。 –

+0

是的,这看起来过于复杂。创建一个div,然后设置类,然后将分配适当的图像和颜色和悬停状态在您的CSS。然后你的JS只需要应用一个随机的类名。 –

回答

2

我所做的是创建了一个所有可能的颜色数组。注意颜色的索引如何匹配描述的索引。所以如果变量x变成3,那么purple.png将是logo,而紫色将是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(); 
+0

当我将它应用于而不是:悬停时,它正在工作。必须被重写... – Felix

+0

移动jQuery没有帮助... – Felix

+1

@Felix此外,我想jQuery可能不会让你将'a:hover'作为选择器..请参阅此http:// stackoverflow。 com/questions/4847329/how-to-select-ahover-thats-not-in-a-certain-selector。所以你可以做的是仍然使用当前菜单项的内容,但对于a,像'$('a')。hover(function(){$(this).css({color:thecolor}) ;' – CRABOLO