javascript - 当我运行一个包含他的 JS 时,一个元素正在跳跃
问题描述
我现在正在处理登录表单,但遇到了问题。在密码输入字段中,我有一个“切换眼睛”,用于切换密码的可见性。我编写了脚本,一切正常,但是当我点击那只眼睛时,它会因未知原因跳起 2-3 毫米。
在这里您可以尝试该代码。谢谢!
* {
box-sizing: border-box;
}
body {
font-weight: 400;
background-color: #EEEFF4;
}
body,
html,
{
width: 100%;
height: 100%;
}
#hide{
display :none;
}
.eye{
position:relative;
float: right;
top: 40px;
right: 9px;
z-index: 2;
}
label {
font-weight: 500;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<div class="form-group">
<label>Password</label>
<span class="eye">
<i id="show" class="fa fa-eye"></i>
<i id="hide" class="fa fa-eye-slash"></i>
</span>
<input type="password" class="form-control" placeholder="*******" name="password_signin"
id="password_signin" />
</div>
<script type="text/javascript">
$(document).ready(function toggle(){
$(".eye").bind("click", function(){
var x = document.getElementById("password_signin"); //input field
var y = document.getElementById("hide"); //hide <i> from span
var z = document.getElementById("show"); //show <i> from span
if(x.type === 'password'){
x.type = "text";
y.style.display = "block";
z.style.display = "none";
}
else{
x.type = "password";
y.style.display = "none";
z.style.display = "block";
}
});
});
</script>
解决方案
i#show
在我看来,这是因为和之间的过渡i#hide
避免这种情况的一种方法是例如省略一个 i 标签
<i id="eye" class="fa fa-eye"></i>
var x = document.getElementById("password_signin"); //input field
var y = document.getElementById("eye");
if(x.type === 'password'){
x.type = "text";
y.className = "fa fa-eye-slash";
}
else{
x.type = "password";
y.className = "fa fa-eye";
}
推荐阅读
- flutter - NoSuchMethodError 被抛出构建选项卡(脏,状态:_TabsState#fefcf):方法 '[]' 在 null 上被调用
- sql - 我们可以更新定义为在不同表中定义的唯一记录的外键的记录吗?
- excel - 仅将 VBA 代码应用于主题中包含“字符串”的电子邮件
- ios - 使用 Apple 登录 - 使用设备(iPhone 或 iPad)Apple ID 时缺少电子邮件
- c# - 是否可以通过谷歌驱动器/一个驱动器共享数据库并在表单应用程序上使用它?
- google-forms - Google 表单 - 答案类型:网格上的开放式答案,而不是多项选择网格或复选框网格
- vue.js - 从 Monaco Editor 获取值
- python - 通过 emacs 执行 Python 脚本引发 OSError: *.txt not found
- java - spring-boot-maven-plugin 从依赖项中重新打包所有 jar
- android - Android从服务访问数据库存储库?