📅  最后修改于: 2023-12-03 15:28:17.767000             🧑  作者: Mango
在编写应用程序时,有时候需要对用户输入的文本进行一些特殊的显示效果,其中之一就是输入边框颤动。输入边框颤动是指在用户输入文本时,输入框(比如文本框)的边框会不断颤动,给用户一种输入信息的动态反馈。
实现输入边框颤动的方法很多,这里给出一种使用 HTML、CSS 和 JavaScript 的实现方式。
首先,需要在 HTML 中创建一个文本框,并用一个 ID 来标识它。
<input type="text" id="my-input">
然后,在 CSS 中,定义输入框的样式,并为其添加一个动画。其中,边框颤动的动画是通过 @keyframes
定义的,包括几个关键帧,分别对应不同的状态。
#my-input {
border: 2px solid #ccc;
padding: 10px;
outline: none;
animation: shake 0.5s infinite;
}
@keyframes shake {
0% {
transform: translateX(0);
}
10%, 30%, 50%, 70%, 90% {
transform: translateX(-5px);
}
20%, 40%, 60%, 80% {
transform: translateX(5px);
}
100% {
transform: translateX(0);
}
}
最后,在 JavaScript 中,监听文本框的输入事件,并添加/移除一个 CSS 类,来启用/禁用边框颤动动画。
const input = document.getElementById('my-input');
input.addEventListener('input', () => {
if (input.value) {
input.classList.add('shake');
} else {
input.classList.remove('shake');
}
});
完整的 HTML、CSS 和 JavaScript 代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输入边框颤动</title>
<style>
#my-input {
border: 2px solid #ccc;
padding: 10px;
outline: none;
animation: shake 0.5s infinite;
}
@keyframes shake {
0% {
transform: translateX(0);
}
10%, 30%, 50%, 70%, 90% {
transform: translateX(-5px);
}
20%, 40%, 60%, 80% {
transform: translateX(5px);
}
100% {
transform: translateX(0);
}
}
</style>
</head>
<body>
<input type="text" id="my-input">
<script>
const input = document.getElementById('my-input');
input.addEventListener('input', () => {
if (input.value) {
input.classList.add('shake');
} else {
input.classList.remove('shake');
}
});
</script>
</body>
</html>
到这里,我们就通过 HTML、CSS 和 JavaScript 实现了输入边框颤动的效果。通过动态变化的边框,让用户可以感受到输入的实时反馈,提高了应用程序的可用性。