随机悬停效果

时间:2016-08-08 08:56:19

标签: javascript jquery html css

你如何随机化悬停效果?

例如:

<p>test</p>

p:hover {
background: yellow;
}

p:hover:
background: red;
}

请注意,上述内容仅供参考。问题是,如何随机化悬停效果,以便在background:yellow;上以随机顺序显示background:red;onmouseover

不应该有任何顺序,例如:在第一次悬停时 - 添加一个类,第二个 - 另一个。它应该完全随机

5 个答案:

答案 0 :(得分:4)

使用以下函数获取随机颜色并使用鼠标悬停事件更改背景颜色。

function getRandomColor () {
 var letters = '0123456789ABCDEF'.split('');
 var color = '#';
 for (var i = 0; i < 6; i++) {
     color += letters[Math.floor(Math.random() * 16)];
 }
 return color;
    }
})

$( "p" ).mouseover(function() {
$(this).css("background",getRandomColor());
});

请检查Fiddle

答案 1 :(得分:0)

您可以在悬停时向该元素添加一个随机类,并在悬停事件完成后将其删除。

如果您有以下CSS:

.yellow {
  background: yellow;
}

.red {
  background: red;
}

您可以使用以下jQuery代码示例:

// Declare all classes that can be used in the random selection
var classes = ['yellow', 'red'];

$("p").hover(
  function() {
    // Select a random class
    var randomClass = classes[Math.floor(Math.random() * classes.length)];

    $(this).addClass(randomClass);
  }, function() {
    $(this).removeClass();
  }
);

您可以查看this Fiddle上的示例。

使用classes函数在Math.random()数组上进行随机选择。

答案 2 :(得分:0)

&#13;
&#13;
$(document).ready(function(){

$("p[data-random]").mouseover(function(){
	max_value=5;
	random_value= Math.floor((Math.random() * max_value) + 1);
	$(this).attr("data-random",random_value);
});
})
&#13;
p[data-random]{
	padding: 10px;
    border:1px solid black;
}

p[data-random]:hover {
	cursor: pointer
}

p[data-random="1"]:hover {
	background: yellow;
}
p[data-random="2"]:hover {
	background: red;
}
p[data-random="3"]:hover {
	background: black;
}
p[data-random="4"]:hover {
	background: white;
}
p[data-random="5"]:hover {
	background: blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p data-random="1">Hello</p>
&#13;
&#13;
&#13;

这是在背景上做随机效果的最佳方法,这里我考虑了5种颜色的随机效果。

答案 3 :(得分:-1)

您应该使用javascript设置不同的类。

例如类似的东西(jquery):

 var randomClasses = ['class1','class2','class3'];
$('p').mouseover(function(){
 $(this).toggleClass(function() {
   var randomColor = randomClasses[getRandomInt(0,randomClasses.length-1)];
   return randomColor;
 });    
})


function getRandomInt(min, max)
{
   return Math.floor(Math.random() * (max - min + 1)) + min;
}

答案 4 :(得分:-1)

我测试了它并且它有效......在这里,你有一个简单的方法。您可能需要addClass和removeClass。这取决于你的上帝......

.p1:hover {
background: yellow;
}

.p2:hover{
background: red;
}

.p3:hover{
background: blue;
}

// And so on...

setRandomHover(function() {
  var number = 1 + Math.floor(Math.random() * 6);
  if (number == 1)
  {
    $('#your_div').attr('class','p1');
  } else if (number == 2)
  {
    $('#your_div').attr('class','p2');
  }
  // And so on...
};