如何实现色条随输入密码长度变化效果:
在很多网站注册页面都有这样的功能,当用户输入密码的时候,下面会出现一个色条,色条的长度会跟随输入密码的长度变化,并且色条的颜色也会根据输入密码长度的不同有所改变,一般是用来提示密码强度。下面就简单介绍一下使用jQuery如何实现此功能。代码实例如下:
<!DOCTYPE html> <html> <head> <meta charset=\"utf-8\"> <title>phpstudy</title> <style type=\"text/css\"> .box { width: 200px; height: 10px; border: 1px solid #CCC; margin-left: 58px; } .bg { height: 10px; } </style> <script type=\"text/javascript\" src=\"mytest/jQuery/jquery-1.8.3.js\"></script> <script type=\"text/javascript\"> $(document).ready(function(){ $(\"#mytext\").keyup(function(){ var textMax=20; $(\"#mytext\").attr(\"maxlength\",textMax); var len=$(\"#mytext\").val().length; var boxlen=$(\".box\").css(\"width\"); var inputlength=$(\"#mytext\").val().length; var bgwidth=(inputlength/textMax)*parseInt(boxlen); $(\".bg\").css(\"width\",bgwidth); if(bgwidth<60) { $(\".bg\").css(\"background-color\",\"#F00\"); } else if(60<=bgwidth && bgwidth<120) { $(\".bg\").css(\"background-color\",\"#F90\"); } else if(bgwidth>=120) { $(\".bg\").css(\"background-color\",\"#6F3\"); } }) }) </script> </head> <body> <div>用户名: <input type=\"text\" name=\"username\" id=\"mytext\" /> </div> <div class=\"box\"> <div class=\"bg\"></div> </div> </body> </html>
以上代码基本实现了我们需要的功能,当在文本框输入内容的时候,下面的背景条长度和颜色都会跟随者变化。下面就简单介绍一下如何实现此效果:
一.这里运用了keyup事件,也就是当输入文本后,当按键松开后就会触发此事件,以此来实现每当输入一段文本,相应的背景条长度和颜色就会进行调整。
二.var textMax=20用来定义text文本框最大输入长度,通过 $(\"#mytext\").attr(\"maxlength\",textMax)设置文本框的maxlength属性,并且将属性值设置为textMax。
三.$(\".box\").css(\"width\")返回box元素的宽度,$(\"#mytext\").val().length返回输入内容的长度,这样inputlength/textMax就可以计算出当前输入元素的长度和和文本框最大输入长度的比例,这样用这个比例值乘以box元素的宽度,就可以计算出当前背景条的长度,代码即是:(inputlength/textMax)*parseInt(boxlen),这里特别要注意parseInt()函数的使用,否则返回值是NaN,因为boxlen值是通过$(\".box\").css(\"width\")返回的,是个字符串,并且后面带有\"px\"单位。
四.if语句通过判断当前背景条的长度来判断背景条的颜色。
以上所述就是本文的全部内容了,希望大家能够喜欢
本文地址:https://www.stayed.cn/item/5387
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我