目标是手动设置保持键的"重复率".
例如,当在文本框中并按住X键时,我理解有特定于浏览器的方式来重复按下的字符.在某些情况下,它会暂停,然后不断触发按下的键.在其他情况下,它根本不重复.我想通过强制按下的键以特定间隔重复来缓解这种情况,无论浏览器如何.
通过研究,我想出了一个基于计时器的尝试,但在Safari中,它不会重复这个角色.我有一个菜单系统,按住箭头滚动列表,但翻译动画和重复率彼此不喜欢.
var repeating = false;
var repeatRateTimer = null;
$( document ).bind( 'keyup', function( input ) {
if( repeatRateTimer != null )
{
clearTimeout( repeatRateTimer );
repeatRateTimer = null;
}
repeating = false;
} );
$( document ).bind( 'keydown', function( input ) {
input.preventDefault( );
if( repeating == true )
{
if( repeatRateTimer != null )
{
clearTimeout( repeatRateTimer );
repeatRateTimer = null;
}
else
{
repeatRateTimer = setTimeout( function( ){ repeating = false; }, 1000 …Run Code Online (Sandbox Code Playgroud) X下一次执行之间的ms.mouseover(#slider)暂停延迟 - 如果延迟= 1000毫秒,并且已经过了300毫秒,mouseout(#slider)将触发恢复倒计时剩余的700毫秒延迟.这是一个直观的解释:
var = s Array(1,2,3)
var x = s[1]; //get first element
console.log(x); //do something to it
wait(); //START wait timer 1000ms
//------------> timer : 300ms
//------------> user : mouseover (#slider) : pause timer
//------------> user : waited 5000ms
//------------> user : mouseout (#slider) : resume timer
//------------> timer : 300ms --> still 700ms to go!
//------------> timer : 500ms
//------------> user : mouseover (#slider) …Run Code Online (Sandbox Code Playgroud)