当用户将鼠标悬停在输入上时,此代码会在输入中产生打字机动画效果,它会为占位符文本设置动画。当用户离开时,我希望动画停止并且输入恢复到原始状态。
$(function() {
var sppInput,
sppInputName = $('#spp-input-name'),
sppInputNamePlace = sppInputName.attr('placeholder');
// Typewriter Effect
function sppInputStart(elm, n, text) {
if (n < (text.length)) {
$(elm).attr('placeholder', text.substring(0, n + 1));
n++;
sppInput = setTimeout(function () {
sppInputStart(elm, n, text);
}, 80);
}
}
function sppInputStop(elm, place) {
clearTimeout(sppInput);
$(elm).attr('placeholder', place);
}
// Typewriter Effect for Name
sppInputName.mouseover(function () {
sppInputStart(this, 0, sppInputName.data('typewriter'));
});
sppInputName.mouseout(function () {
sppInputStop(this, sppInputNamePlace);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input placeholder="Name" data-typewriter="Insert the Name" type="text" id="spp-input-name" name="name" required>
此代码适用于所有浏览器(包括 IE),但不适用于 firefox。
为什么?