* API web 7 eventos de pantalla táctil, efectos especiales comunes en terminales móviles, soluciones de retardo de clic, complementos de desarrollo comunes en terminales móviles, marcos de desarrollo comunes en terminales móviles, almacenamiento local

1.1. Eventos de la pantalla táctil

1.1.1 Descripción general de los eventos de la pantalla táctil

La compatibilidad del navegador móvil es mejor. No necesitamos considerar los problemas de compatibilidad con JS anteriores. Podemos usar el efecto de escritura JS nativo con confianza, pero el terminal móvil también tiene su propio lugar único. Por ejemplo, toque de evento táctil (también llamado evento táctil), tanto en Android como en IOS. El objeto táctil representa un punto de contacto. El punto táctil puede ser un dedo o un lápiz táctil. Los eventos de la pantalla táctil pueden responder al dedo (o lápiz) del usuario que opera en la pantalla o el panel táctil.

Los eventos comunes de la pantalla táctil son los siguientes:
Inserte la descripción de la imagen aquí

1.1.2 Objeto de evento táctil (TouchEvent)

TouchEvent es un tipo de evento que describe el cambio de estado del dedo en el plano táctil (pantalla táctil, panel táctil, etc.). Este tipo de evento se utiliza para describir uno o más contactos, permitiendo a los desarrolladores detectar el movimiento de contactos, el aumento y disminución de contactos, etc.

Los tres eventos de touchstart, touchmove y touchend tendrán cada uno objetos de evento.

Concéntrese en los objetos de eventos táctiles. Veamos una lista de tres objetos comunes:
Inserte la descripción de la imagen aquí

Debido a que generalmente registramos eventos táctiles para elementos, debemos recordar targetTocuhes

1.1.3 Arrastre el elemento en el terminal móvil

  1. touchstart, touchmove, touch y puede realizar elementos de arrastre
  2. Pero arrastrar el elemento requiere las coordenadas del dedo actual. Podemos usar pageX y pageY en targetTouches [0]
  3. El principio de arrastrar en el terminal móvil: cuando el dedo se está moviendo, calcule la distancia que se ha movido el dedo. Luego use la posición original de la caja + la distancia movida por el dedo
  4. La distancia que se mueve el dedo: la posición del dedo deslizándose menos la posición donde el dedo acaba de comenzar a tocarse

Tres pasos para arrastrar elementos:

(1) Touchstart del elemento táctil: obtenga las coordenadas iniciales del dedo y la posición original del cuadro al mismo tiempo

(2) Mueva el dedo touchmove: Calcule la distancia de deslizamiento del dedo y mueva el cuadro

(3) Deje que el dedo toque y:

Nota: El movimiento de los dedos también activará el desplazamiento de la pantalla, así que aquí para evitar el desplazamiento de pantalla predeterminado e.preventDefault ();

1.2. Efectos especiales comunes en dispositivos móviles

1.2.1 Caso: Carrusel móvil

移动端轮播图功能和基本PC端一致。

  1. Puede reproducir imágenes automáticamente
  2. Puedes arrastrar tu dedo para tocar el carrusel.

1.2.2. Análisis de casos:

  1. Función de reproducción automática

  2. Iniciar temporizador

  3. Móvil móvil, puedes usar traducir para moverte

  4. Si desea que la imagen se mueva con elegancia, agregue un efecto de transición

  5. Inserte la descripción de la imagen aquí

  6. Función de reproducción automática: desplazamiento continuo

  7. Tenga en cuenta que nuestra condición de juicio es esperar hasta que la imagen se desplace y luego juzgar, es decir, juzgar después de que se complete la transición.

  8. En este momento, debe agregar una transición de detección completa transición de eventoend

  9. Condición de evaluación: si el número de índice es igual a 3, significa que se alcanza la última imagen y el número de índice debe restablecerse a 0 en este momento

  10. En este momento, la imagen, elimine el efecto de transición y luego mueva

  11. Si el número de índice es menor que 0, significa retroceder y el número de índice es igual a 2.

  12. En este momento, la imagen, elimine el efecto de transición y luego mueva
    Inserte la descripción de la imagen aquí

1.2.3 atributo classList

El atributo classList es un nuevo atributo en HTML5 que devuelve el nombre de clase del elemento. Sin embargo, las versiones superiores a ie10 son compatibles.

Este atributo se utiliza para agregar, eliminar y cambiar clases CSS en el elemento. Existen los siguientes métodos

Agregar clase:

element.classList.add ('类 名') ;

focus.classList.add('current');

Quitar clase:

element.classList.remove ('类 名');

focus.classList.remove('current');

Clase de cambio:

element.classList.toggle ('类 名');

focus.classList.toggle('current');

注意:以上方法里面,所有类名都不带点

1.2.4. Estudio de caso

  1. Pequeños puntos siguen el efecto de cambio.

  2. Seleccione el li in ol con el nombre de la clase actual para eliminar el nombre de la clase eliminar

  3. Deje que el pequeño li del número de índice actual agregue la suma actual

  4. Sin embargo, está esperando cambiar después de que finalice la transición, por lo que está escrito en el evento de final de transición.
    Inserte la descripción de la imagen aquí

  5. Carrusel de deslizamiento de dedos

  6. La esencia es que ul sigue el dedo para moverse, que es simplemente arrastrar el elemento en el terminal móvil.

  7. Inicio táctil del elemento táctil: obtenga las coordenadas iniciales del dedo

  8. Mover el dedo touchmove: Calcule la distancia de deslizamiento del dedo y mueva el cuadro

  9. Deje el toque del dedo: según la distancia de deslizamiento, hay diferentes situaciones

  10. Si la distancia de movimiento es inferior a un determinado píxel, volverá a la posición original.

  11. Si la distancia de movimiento es mayor que un determinado píxel, deslice el anterior y el siguiente.

  12. El deslizamiento también se divide en deslizamiento hacia la izquierda y deslizamiento hacia la derecha. El criterio para juzgar es la distancia de movimiento positiva o negativa. Si es negativa, significa deslizarse hacia la izquierda y deslizarse hacia la derecha.

  13. Si se desliza hacia la izquierda, reproduce el siguiente (índice ++)

  14. Si desliza el dedo hacia la derecha, reproduce el anterior (índice--)
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

1.3.1. Caso: volver al principio

Cuando la página se desplace en algún lugar, se mostrará; de lo contrario, se ocultará.

Haga clic para volver al principio

1.3.2. Análisis de casos

  1. Desplácese en algún lugar para mostrar
  2. Evento: evento de desplazamiento de página de desplazamiento
  3. Si la cabeza que se está rodando (window.pageYOffset) es mayor que un cierto valor
  4. Haga clic en, window.scroll (0,0) para volver a la parte superior
    Inserte la descripción de la imagen aquí

1.4. Haga clic en la solución de retraso

Habrá un retraso de 300 ms para el evento de clic en el terminal móvil. La razón es que un doble toque para hacer zoom en la página en la pantalla del terminal móvil hará doble toque para hacer zoom.

solución:

1. Desactive el zoom. El navegador deshabilita el comportamiento de zoom de doble clic predeterminado y elimina el retraso de clic de 300 ms.

  <meta name="viewport" content="user-scalable=no">

2. Utilice el evento táctil para encapsular este evento y resolver el retraso de 300 ms.

El principio es:

  1. Cuando nuestro dedo toca la pantalla, registramos el tiempo de toque actual
  2. Cuando salimos de la pantalla con nuestro dedo, usamos el tiempo que dejamos para restar el tiempo que tocamos
  3. Si el tiempo es inferior a 150ms y la pantalla no se ha deslizado, lo definimos como un clic.

el código se muestra a continuación:

//封装tap,解决click 300ms 延时
function tap (obj, callback) {
    
    
        var isMove = false;
        var startTime = 0; // 记录触摸时候的时间变量
        obj.addEventListener('touchstart', function (e) {
    
    
            startTime = Date.now(); // 记录触摸时间
        });
        obj.addEventListener('touchmove', function (e) {
    
    
            isMove = true;  // 看看是否有滑动,有滑动算拖拽,不算点击
        });
        obj.addEventListener('touchend', function (e) {
    
    
            if (!isMove && (Date.now() - startTime) < 150) {
    
      // 如果手指触摸和离开时间小于150ms 算点击
                callback && callback(); // 执行回调函数
            }
            isMove = false;  //  取反 重置
            startTime = 0;
        });
}
//调用  
  tap(div, function(){
    
       // 执行代码  });

  1. Utilice complementos. El complemento fastclick resuelve el retraso de 300 ms.
    Inserte la descripción de la imagen aquí

1.5. Complementos de desarrollo móvil de uso común

1.5.1. ¿Qué es un complemento?

El terminal móvil requiere un desarrollo rápido, por lo que a menudo usamos algunos complementos para ayudarme a completar la operación, entonces, ¿qué es un complemento?

El complemento JS es un archivo js, ​​que está escrito de acuerdo con ciertas especificaciones, que es conveniente para los efectos de visualización del programa, tiene funciones específicas y es conveniente llamarlo. Como el diagrama de carrusel y el complemento de flujo de cascada.

Características: Generalmente existe específicamente para resolver un determinado problema, y ​​su función es única y relativamente pequeña.

El animate.js que escribimos antes también se considera el complemento más simple

El complemento fastclick resuelve el retraso de 300 ms. Retraso de uso

Dirección del sitio web oficial de GitHub: https: // github.com/ftlabs/fastclick

1.5.2. Uso de complementos

  1. Introduce archivos de complemento js.

  2. Úselo de acuerdo con la gramática prescrita.

  3. El complemento fastclick resuelve el retraso de 300 ms. Retraso de uso

  4. Dirección del sitio web oficial de GitHub: https://github.com/ftlabs/fastclick

    if ('addEventListener' in document) {
          
          
                document.addEventListener('DOMContentLoaded', function() {
          
          
                           FastClick.attach(document.body);
                }, false);
    }
    

1.5.3. Uso del complemento Swiper

Dirección del sitio web oficial chino: https://www.swiper.com.cn/

  1. Introduzca archivos relacionados con complementos.
  2. Usar de acuerdo con la gramática prescrita.

1.5.4. Otros complementos móviles habituales

lsuperslide: http://www.superslide2.com/

l desplazamiento: https://github.com/cubiq/iscroll

1.5.5. Resumen del uso de complementos

1. Confirme las funciones implementadas por el complemento

2. Vaya al sitio web oficial para consultar las instrucciones.

3. Descarga el complemento

4. Abra el archivo de ejemplo de demostración, vea los archivos relacionados que deben importarse e importe

5. Copie la estructura html, estilo css y código js en el archivo de ejemplo de demostración.

1.5.6. Complemento de video móvil zy.media.js

H5 nos proporciona la etiqueta de video, pero el soporte del navegador es diferente.

Podemos resolver diferentes archivos de formato de video a través de la fuente.

Pero el estilo de apariencia, así como la pausa, reproducción, pantalla completa y otras funciones, solo podemos escribir nuestro propio código para resolver.

En este momento, podemos usar el método de complemento para hacerlo.

Podemos modificar el tamaño, color, posición y otros estilos de elementos a través de JS.

1.6. Marcos de desarrollo comunes para dispositivos móviles

1.6.1. Complemento de video móvil zy.media.js

Un framework, como su nombre indica, es un conjunto de arquitectura, que proporcionará a los usuarios una solución relativamente completa basada en sus propias características. El control del marco reside en el marco en sí, y el usuario tiene que desarrollar de acuerdo con una determinada especificación estipulada por el marco.

El complemento generalmente existe específicamente para resolver un determinado problema, y ​​su función es única y relativamente pequeña.

Los marcos de front-end más utilizados incluyen Bootstrap, Vue, Angular, React, etc. Puede desarrollar tanto PC como dispositivos móviles

Los complementos móviles de front-end más utilizados incluyen swiper, superslide, iscroll, etc.

Marco: amplio y completo, un conjunto completo de soluciones.

Plug-in: pequeño y específico, una solución para una función determinada

1.6.2. Oreja

Bootstrap es un marco de desarrollo de front-end simple, intuitivo y poderoso que hace que el desarrollo web sea más rápido y fácil.

Puede desarrollar PC y terminales móviles.

Pasos para usar el complemento Bootstrap JS:

1. Introduzca archivos js relacionados

2. Copie la estructura HTML

3. Modifica el estilo correspondiente

4. Modifique los parámetros JS correspondientes.

1.7. Almacenamiento local

Con el rápido desarrollo de Internet, las aplicaciones basadas en la web son cada vez más comunes y, al mismo tiempo, cada vez más complejas. Para satisfacer diversas necesidades, se almacenará localmente una gran cantidad de datos. La especificación HTML5 propone soluciones relacionadas Programa.

1.7.1. Funciones de almacenamiento local

1. Los datos se almacenan en el navegador del usuario.

2. Fácil de configurar y leer, incluso se actualiza la página sin perder datos

3. Gran capacidad, sessionStorage es de aproximadamente 5 M, localStorage es de aproximadamente 20 M

4. Solo se pueden almacenar cadenas y los objetos se pueden almacenar después de codificar JSON.stringify ()

1.7.2.window.sessionStorage

1. El ciclo de vida consiste en cerrar la ventana del navegador.

2. Los datos se pueden compartir en la misma ventana (página)

3. Almacenar y utilizar en forma de pares clave-valor

Almacenamiento de datos:

sessionStorage.setItem(key, value)

recuperar datos:

sessionStorage.getItem(key)

borrar datos:

sessionStorage.removeItem(key)

Borrar datos: (todos borrados)

sessionStorage.clear()

1.7.3.window.localStorage

1. El período de declaración entra en vigor de forma permanente y la página cerrada también existirá a menos que se elimine manualmente.

2. Se pueden compartir varias ventanas (páginas) (se puede compartir el mismo navegador)

  1. Almacenar y usar en forma de pares clave-valor

Almacenamiento de datos:

localStorage.setItem(key, value)

recuperar datos:

localStorage.getItem(key)

borrar datos:

localStorage.removeItem(key)

Borrar datos: (todos borrados)

localStorage.clear()

1.7.4. Caso: Recuerde el nombre de usuario

Si marca Recordar nombre de usuario, la próxima vez que el usuario abra el navegador, el último nombre de usuario que inició sesión se mostrará automáticamente en el cuadro de texto.

caso de estudio

  1. Almacene datos y use el almacenamiento local

  2. Cierre la página, también puede mostrar el nombre de usuario, por lo que se usa localStorage

  3. Abra la página, primero determine si existe este nombre de usuario, si es así, muestre el nombre de usuario en el formulario y marque la casilla

  4. El evento de cambio cuando cambia la casilla de verificación

  5. Si está marcado, guardar, de lo contrario eliminar
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_48116269/article/details/108082865
Recomendado
Clasificación