动态改变HTML 的<input> 标签的背景色

本文介绍两种实现按钮鼠标悬停时背景变色的方法:一是利用CSS hover伪类;二是使用JavaScript监听鼠标事件并动态更改背景色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以button为例,如果需要鼠标移动到上面会变色。可以有两种方法。

1.用css设置。

先定义一个css类型,确定正常情况下的background颜色。再定义hover状态下的背景色。

.bt1{
        background-color: #F5F8F0;
}

.bt1:hover{
        background-color: #006BCD;
}

然后在body中定义input元素时用上这个class就行了。

<input  type="button" class=bt1 name="xxx">

2.用JavaScript动态设置。

首先在head中添加script标签,定义两个函数lightColor,和restoreColor 。

函数中通过获取元素的id,来修改它的背景颜色属性。

<script language="javascript">

function lightColor()
{
    var obj;
    obj = document.getElementById("btnx");
    obj.style="background-color:#0099ff";
}

function restoreColor ()
{
    var obj;
    obj = document.getElementById("btnx");
    obj.style="background-color:#FFFFFF";
}

</script>

再在body中定义input元素,其onmouseover 和onmouseout事件分别调用以上两个函数.记得指定id,因为函数是通过id定位元素的。

<input  type="button"  id="btnx" name="xxx" onmouseout="restoreColor" onmouseover="lightColor">

扩展:

这里的事件如果换成onclick,就可以通过点击触发背景色改变。

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>02</title> <link href="bootstrap.min.css" rel="stylesheet"> <style> .bg { overflow: hidden; background-color: beige; } </style> </head> <body> <section class="bg"> <div class="container col-sm-12"> <div class="col-sm-4 col-sm-offset-4" autocomplete="off"> <fieldset> <legend style="color: #0e0e0e">注 册</legend> <div class="form-group"> <label for="passwordField">Password</label> <input type="password" name="passwordField" id="passwordField" class="form-control" required='required'/> </div> </fieldset> <div> <button type="button" class="btn btn-primary btn-validate">验证</button> <span>   强度等级:</span> <span class="result">未验证</span> </div> </div> </div> <div class="container col-sm-12"> <br/> <div class="col-sm-12 col-sm-offset-4"> <p><strong>你填写的密码的强度等级按如下划分:</strong></p> <dl> <dt>低:</dt> <ol> <li>密码必须大于 8 个字符</li> </ol> <dt>中(在满足低强度要求的前提下,需要满足以下需求):</dt> <dd> <ol> <li>至少需要一个小写字母</li> <li>至少需要一个数字</li> </ol> </dd> <dt>高(在满足中强度要求的前提下,需要满足以下需求):</dt> <dd> <ol> <li>至少需要一个大写字母</li> <li>至少需要一个(除数字和字母外的)特殊字符</li> </ol> </dd> </dl> </div> </div> </section> <script src="jquery.min.js"></script> <script> // 请在这里补充代码,实现密码强度的验证 document.getElementById('passwordField').addEventListener('input', function() { const pwd = this.value; let strengthIndicator = document.querySelector('result'); // 定义匹配模式 var hasLowercase = /[a-z]/.test(pwd); var hasUppercase = /[A-Z]/.test(pwd); var hasNumber = /\d/.test(pwd); var hasSpecialChar = /[\W_]/.test(pwd); // 计算满足条件的数量 var conditionsMetCount = [ hasLowercase, hasUppercase, hasNumber, hasSpecialChar].filter(Boolean).length; // 判断强度等级 if (conditionsMetCount >= 3 && pwd.length >= 8){ strengthIndicator.textContent = 'Strong'; strengthIndicator.style.color = '#27ae60';//绿色表示强壮 } else if ((hasLowercase || hasUppercase) && hasNumber && pwd.length >= 6){ strengthIndicator.textContent = 'Medium'; strengthIndicator.style.color = '#f39c12';//橙色表示适中 } else{ strengthIndicator.textContent = 'Weak'; strengthIndicator.style.color = '#e74c3c';//红色表示脆弱 } }); </script> </body> </html>
03-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值