gpt4 book ai didi

javascript - 带 CSS 动画的 Knockout 输入验证

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:05 28 4
gpt4 key购买 nike

我使用 KnockoutJS 为我的应用程序创建了一个纯数字输入验证器。当用户按下非法键(字母)时,我希望目标输入在每次 非法按键时闪烁 CSS 动画。目前它只触发一次动画,我不确定为什么。

示例:http://codepen.io/anon/pen/oIamG/

有人有什么想法吗?

最佳答案

问题是您需要重置 CSS 动画。为此,您需要删除动画,然后再次添加。
将 -webkit-animation 属性移动到输入中,例如

input {
border: 2px solid black;
padding: 8px;
/* 0.2s is used, just to see the effect, the animation needs to be */
-webkit-animation-duration: 0.2s;
-webkit-animation-direction:forwards;
-webkit-animation-timing-function:ease-in-out;
}

@-webkit-keyframes inputValidationBorder {
0% { border: 2px solid red; }
100% { border: 2px solid black; }
}

然后使用下面的绑定(bind):

ko.bindingHandlers.numeric = {
init: function (element, valueAccessor) {
$(element).bind('webkitAnimationEnd', function(){
this.style.webkitAnimationName = '';
});

$(element).on('keydown', function (event) {
// allow backspace, delete, tab, escape, enter/return and period.
// if input is a letter then disable keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
element.style.webkitAnimationName= 'inputValidationBorder';
event.preventDefault();
}
});
}
};

关于javascript - 带 CSS 动画的 Knockout 输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23172280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com