Y el acelerador para lograr la estabilización de imagen en el código

Agitar

El concepto: una devolución de llamada que se activa en caso n segundos, y luego, si esto se ha disparado en n segundos, y luego volver a tiempo.

Ejemplo: Si alguien en el ascensor, el ascensor comenzará después de 10 segundos, a continuación, si alguien en el ascensor, y tenemos que esperar 10 segundos antes de la salida.

Las ideas: el cierre mediante el mantenimiento de una variable, si esta variable representa el tiempo ha comenzado, antes de la hora de inicio si se ha vaciado el temporizador para el tiempo de reinicio.

la función de supresión de rebotes (fn, tiempo) {
  dejar que el temporizador = nula ;
  devolver  la función () {
    deje de contexto = esta 
    vamos a args = argumentos
     si (temporizador) {
      clearTimeout (temporizador);
      h = nulo ;
    }
    temporizador = setTimeout ( función () {
      fn.apply (contexto, args)
    }, hora)
  }
}
window.onscroll = antirrebote ( función () {
  console.log ( '触发:' + nueva fecha () getTime ().);
}, 1000)

estrangulación

El concepto: una unidad de tiempo especificado, dentro de esta unidad de tiempo, sólo un disparador de ejecución del evento de devolución de llamada, si se activa un evento en la misma unidad de tiempo varias veces, sólo una vez que se haga efectiva.

Ejemplo: Tiempo de reutilización en el juego, no importa cuántas veces se presiona, las habilidades sólo puede ser activado de nuevo después de una buena refrigeración

Las ideas: el cierre mediante el mantenimiento de una variable que se le permite realizar funciones en nombre de, y si se le permite realizar la función de esa variable no se le permite modificar y utilizar un temporizador para recuperar la variable después de un tiempo especificado.

función del acelerador (fn, tiempo) {
  dejó canRun = verdadero ;
  retorno de  la función () {
     si (canRun) {
      fn.apply ( este , argumentos)
      canRun = false 
      setTimeout ( función () {
        canRun = verdadero
      }, hora)
    }
  }
}
window.onscroll = acelerador ( función () {
  console.log ( '触发:' + nueva fecha () getTime ().);
}, 1000)

 

Supongo que te gusta

Origin www.cnblogs.com/wtsx-2019/p/12615038.html
Recomendado
Clasificación