相关疑难解决方法(0)

在JavaScript中是否可以覆盖keydown重复延迟?

目标是手动设置保持键的"重复率".

例如,当在文本框中并按住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)

javascript jquery keypress keydown repeat

11
推荐指数
2
解决办法
1万
查看次数

函数调用之间的javascript延迟数组中的每个索引

目标:

  • 对数组中的每个元素执行逻辑.
  • 等待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)

javascript jquery

1
推荐指数
2
解决办法
3636
查看次数

标签 统计

javascript ×2

jquery ×2

keydown ×1

keypress ×1

repeat ×1