微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 如何在CSS悬停上显示随机颜色?

我有这个CSS代码,当鼠标悬停时,它只显示一种颜色(蓝色).
.MenuBox {
    transition: all 1.0s ease;
    -moz-border-radius:30px;
    -webkit-border-radius:30px;
    border-radius:30px;
    border: #solid 10px #000;
    background-color: rgba(255,255,0.5);
    width:auto;
    height:auto;
    margin-left: auto ;
    margin-right: auto ;
    padding:10px;
    display: inline-block;
}
.MenuBox:hover{
    transition: all 1.0s ease;
    -webkit-border-radius: 30px;
    -moz-border-radius: 30px;
    border-radius: 30px;
    -webkit-Box-shadow: 0px 0px 30px 0px rgba(0,0.67);
    -moz-Box-shadow:    0px 0px 30px 0px rgba(0,0.67);
    Box-shadow:         0px 0px 30px 0px rgba(0,0.67);
}
.MenuBox:last-of-type:hover{

    -webkit-border-radius: 30px;
    -moz-border-radius: 30px;
    border-radius: 30px;
    -webkit-Box-shadow: 0px 0px 30px 0px rgba(0,0.67);
}

我想要显示一个随机的颜色,每次有一个鼠标悬停在那个div我该怎么做?我不认为只能使用CSS,对于愚蠢的问题抱歉.我还在学习编程语言.

更新:

我不想改变背景颜色,但我想改变颜色:

-webkit-Box-shadow: 0px 0px 30px 0px rgba(0,0.67);
-moz-Box-shadow:    0px 0px 30px 0px rgba(0,0.67);
Box-shadow:         0px 0px 30px 0px rgba(0,0.67);

我怎么做 ?

解决方法

这是我将如何使用javascript和jquery(不需要,但更简单).html:
<div id="random"></div>

JavaScript的:

$('#random').on('mouSEOver',function() {
    var color = '#'+Math.floor(Math.random()*16777215).toString(16);
    var colorString = '0px 0px 30px 0px ' + color;
    $('#random').css('Box-shadow',colorString);
    $('#random').css('-webkit-Box-shadow',colorString);
    $('#random').css('-mox-Box-shadow',colorString);
});

CSS:

#random {
    width: 200px;
    height: 200px;
    border: 1px solid black;
}

这是更新的工作小提琴:https://jsfiddle.net/6n0tk3a3/1/

编辑

这是同样的事情使用纯JavaScript – 没有jquery – 和你提供的类名称和css.First html:

<div class="MenuBox"></div>
<div class="MenuBox"></div>
<div class="MenuBox"></div>

使用Javascript:

var menuBoxes = document.getElementsByClassName('MenuBox');
for (var i = 0; i < menuBoxes.length; i++) {
    menuBoxes[i].onmouSEOver = function(e) {
        var color = '#'+Math.floor(Math.random()*16777215).toString(16);
        var colorString = '0px 0px 30px 0px ' + color;
        this.style['Box-shadow'] = colorString;
        this.style['-webkit-Box-shadow'] = colorString;
        this.style['-moz-Box-shadow'] = colorString;
    }  
}

因为我使用你的css我不会发布.这是工作小提琴:https://jsfiddle.net/6n0tk3a3/2/
在你的评论中你说你希望他们都在同一个文件中.虽然你可以做到这一点,我建议反对它,因为它通常被认为是坏习惯.如果你决定这样做,那么确保你的javascript在关闭正文标签之前就可以了,所以页面上的所有元素都会被加载,然后再尝试绑定它们.

编辑#2

如果您希望将鼠标不再悬停将颜色添加到for循环中即可将颜色隐藏到阴影中:

menuBoxes[i].onmouSEOut = function(e) {
    this.style['Box-shadow'] = "none";
    this.style['-webkit-Box-shadow'] = "none";
    this.style['-moz-Box-shadow'] = "none";
}

这是一个工作小提琴:https://jsfiddle.net/6n0tk3a3/25/

原文地址:https://www.jb51.cc/html/224661.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐