vue实现密码显示与隐藏的最简方法
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
·
vue实现密码显示与隐藏的最简方法
更新踩坑:
在element-ui中:
- 2.15.17版本以前,type=“password”类型的input在输入内容后会自动显示小眼睛
- 在目前最新版本2.15.17中,需要加入 show-password 才可以

------------分割线--------------------------------------------------------------------
若需手动实现密码显示与隐藏,可接着往下看(自动忽略我用的elementui,那时候我还不知道它自带呜呜)
实现效果:(画质略糊见谅)
要求:闭眼icon覆盖睁眼icon看起来和其本身一样
我用的 icon链接:http://www.fontawesome.com.cn/faicons/
完整代码:(有点长,但涉及密码显示隐藏的内容很短)
<template>
<div class="login">
<div class="loginTitle">
管理员登录
</div>
<div class="rowEditor">
<el-input v-model="userCode" placeholder="请输入工号"></el-input>
<i class="fa fa-user-o fa-lg"></i>
</div>
<div class="rowEditor">
<el-input v-model="userPwd" :type="psw?'password':'text'" placeholder="请输入密码"></el-input>
<i class="fa fa-lock fa-lg"></i>
<!-- 因为闭眼睁眼的icon重叠,闭眼icon在先,睁眼icon在后,才能触发到睁眼icon上的click事件 -->
<i class="fa fa-eye-slash fa-lg" v-if="!psw" aria-hidden="true"></i>
<i class="fa fa-eye fa-lg" aria-hidden="true" @click="psw=!psw"></i>
</div>
<div class="submit">
<el-button type="primary" @click="checkLogin">登录系统</el-button>
<el-button type = "text">忘记密码</el-button>
</div>
</div>
</template>
<script>
export default {
data () {
return {
psw: true,
userCode: '',
userPwd: ''
}
}
}
</script>
<style lang="less" scoped> // 核心:让闭眼睁眼的icon重叠,其他都不重要
.login{
background-color: #fff;
box-shadow: 0 0 10px #999;
width: 320px;
padding: 20px;
position: fixed;
left: 50%;
top:50%;
transform: translate(-50%, -50%);
border-radius: 16px;
.loginImg{
padding: 40px 0px;
img{
height: 100px;
width: 100px;
border-radius: 50%;
}
}
.loginTitle{
width: 120px;
display: flex;
justify-content: center;
font-weight: bold;
font-size: 1.5em;
margin:0px 30% 15px;
border-bottom: 3px solid #3A62D7;
}
.rowEditor{
position: relative;
margin-bottom: 10px;
.fa-user-o,.fa-lock{
position: absolute;
left: 15px;
top: 13px;
}
.fa-eye,.fa-eye-slash{
position: absolute;
right: 15px;
top: 13px;
}
::v-deep .el-input__inner{
padding-left: 36px;
border-top-style: none;
border-left-style: none;
border-right-style: none;
border-bottom: 2px solid #BBBBBB;
border-radius: 0px;
}
}
.submit{
padding: 25px 0;
display: flex;
justify-content: space-around;
}
}
</style>
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
9e887079
[skip ci] 1 年前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)