javascript - 单击屏幕或任何元素以执行功能

标签 javascript html css input

如何反转函数,以便当我单击输入时,它会将 y 值转换为 -100%,而当我单击屏幕上的其他位置或另一个元素时,它会反转,使值返回到 0%。

我想用js而不是css来实现

let movingName = document.querySelectorAll('.span-name');
let input = document.getElementsByTagName('input')

input[0].onclick = function() {
  movingName[0].style.transform = "translateY(-100%)";
}
.span-name {
  position: relative;
  color: black;
  bottom: 34px;
  left: 10px;
  font-size: 18px;
  padding: 2px;
  z-index: 1;
  pointer-events: none;
  display: block;
  width: fit-content;
  transition: 500ms;
}
<input type="email" name="email_config" required>
<span class="span-name">Email Configuration</span>

最佳答案

尝试使用正文来获取点击事件并根据目标过滤事件。

let movingName = document.querySelectorAll('.span-name');
let input = document.getElementsByTagName('input')

document.getElementsByTagName('body')[0].onclick = function(e) {
    var tagName = e.target.tagName;
    if (tagName !== 'INPUT') {
        movingName[0].style.transform = "translateY(100%)";
    }
}    

input[0].onclick = function() {
  movingName[0].style.transform = "translateY(-100%)";
}
.span-name {
  position: relative;
  color: black;
  bottom: 34px;
  left: 10px;
  font-size: 18px;
  padding: 2px;
  z-index: 1;
  pointer-events: none;
  display: block;
  width: fit-content;
  transition: 500ms;
}
<div style="height:100vh; width:100vw">
    <input type="email" name="email_config" required>
    <span class="span-name">Email Configuration</span>
</div>

关于javascript - 单击屏幕或任何元素以执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60551718/

相关文章:

javascript - 覆盖 jPlayer 中的负剩余时间

javascript - 如何在 Javascript 中修改 URL

html - CSS 下拉菜单在 IE 8 中不起作用

javascript - 如何跟踪输入字段中的字符位置、删除、插入和替换?

javascript - 在 Safari Mobile (iOS) 上使 onclick 功能与 ENTER 和 "Go"按钮一起使用

python - 在 python 中使用格式错误的 JSON 抓取页面

html - 下拉 CSS 不工作(Laravel Blades)

html - 如何在另一个 div 中强制内联 div

javascript - 更改 href 上的窗口位置

javascript - div 中的复选框带有 onclick 切换双切换(如何阻止内部切换)