更新背景颜色并在刷新时悬停颜色

时间:2014-03-31 15:34:56

标签: javascript jquery css random

每次用户刷新页面时,我都希望更改网站徽标颜色和按钮的悬停颜色。颜色必须协调。 Website Link 徽标实际上是一个带有透明区域的图像,我可以在其中放置任何我想要的背景颜色。

有人在这里有类似的问题:JQuery Random Background color and color, on 2 div's

这是我根据该帖子制作的javascript:

$(document).ready(function(){
   var colors = ["#fda65f","#66CCFF","#71e271","#D37AFF"];                
   var rand = Math.floor(Math.random()*colors.length);           
   $('#logo').css("background-color", colors[rand]);
   $('.cbp-ig-grid').css("background-color", colors[rand]);
});

.cbp-ig-grid正确更改背景颜色,但我希望颜色仅在悬停时显示。 .cbp-ig-grid类具有此悬停属性:

  

.cbp-ig-grid li> a:悬停{       背景色:#71e271;}

问题是,如果我更改了javascript代码' .cbp-ig-grid'使用' .cbp-ig-grid li>一个:悬停'它停止工作。我没有使用Javascript的经验,所以我肯定做错了。

4 个答案:

答案 0 :(得分:1)

尝试使用hover()方法:

$('.cbp-ig-grid').hover(function() {
   $(this).css("background-color", colors[rand]); 
});

答案 1 :(得分:1)

我更倾向于使用javascript打印<style>表,而不是使用jquery

添加hover()个事件
<script>
var colors = ["#fda65f","#66CCFF","#71e271","#D37AFF"];                
var rand = Math.floor(Math.random()*colors.length);
var head = document.head,
    style = document.createElement('style');

var css = '#logo { background-color: ' + colors[rand] + '; } ';
    css += '.cbp-ig-grid li > a:hover { background-color: ' + colors[rand] + '; } ';

style.type = 'text/css';
if (style.styleSheet){
  style.styleSheet.cssText = css;
} else {
  style.appendChild(document.createTextNode(css));
}

head.appendChild(style);
</script>

答案 2 :(得分:0)

使用此

$('.cbp-ig-grid  li > a').hover(function(){
$(this).css("background-color", colors[rand]);
});

答案 3 :(得分:0)

你正在做的是:

替换$('.cbp-ig-grid').css("background-color", colors[rand]);

$('.cbp-ig-grid li > a:hover').css("background-color", colors[rand]);

是正确的吗? 无论如何,你无法使用jQuery选择器控制悬停状态:$('.cbp-ig-grid')

您可以通过使用如下函数设置事件处理程序来实现此目的:

$(document).ready(function(){
   var colors = ["#fda65f","#66CCFF","#71e271","#D37AFF"];                
   var rand = Math.floor(Math.random()*colors.length);           
   $('#logo').css("background-color", colors[rand]);

   $(".cbp-ig-grid li").on("mouseover", function () {
       $(this).css("background-color", colors[rand]);
   });

}