📜  输入边框颤动 (1)

📅  最后修改于: 2023-12-03 15:28:17.767000             🧑  作者: Mango

输入边框颤动

介绍

在编写应用程序时,有时候需要对用户输入的文本进行一些特殊的显示效果,其中之一就是输入边框颤动。输入边框颤动是指在用户输入文本时,输入框(比如文本框)的边框会不断颤动,给用户一种输入信息的动态反馈。

实现

实现输入边框颤动的方法很多,这里给出一种使用 HTML、CSS 和 JavaScript 的实现方式。

HTML

首先,需要在 HTML 中创建一个文本框,并用一个 ID 来标识它。

<input type="text" id="my-input">
CSS

然后,在 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

最后,在 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 实现了输入边框颤动的效果。通过动态变化的边框,让用户可以感受到输入的实时反馈,提高了应用程序的可用性。