Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
Cómo usar una rueda del mouse como anterior y siguiente dependiendo de wheelDeltaY

Entonces, tengo un problema en el que la rueda del mouse debe ser un botón siguiente y anterior ... Estoy usando ThreeJS y, dado que esta lógica también se puede implementar en algún área, solo quería expresarlo en ThreeJS. Entonces, mi problema aquí es pensar en una matriz cuya array = [image1,image2,image3] dando eso

 let next = 0; let prev = 0; window.addEventListener("mousewheel",(e) => { move += e.wheelDeltaY/1000; next = Math.floor(move + 40) % 2; prev = ( Math.floor(move) + 1 + 40) % 2; console.log(array[next]) console.log(array[prev]) })

Como puede ver, next y prev son un módulo, por lo que solo da un valor de 1 y 0. Ahora, la cuestión es que... dado que tengo 3 matrices, quiero que obtengan entrada en the y next y prev. digamos que yo tenga 10 imágenes de elementos para la array , luego next y prev serán algo como esto [img1,img2] primero siguiente y anterior y luego [img2,img3] ... y así sucesivamente ... pero hasta llegar a [img9,img10] . .debe seguir funcionando como un bucle (al igual que el bucle de los controles deslizantes)

Mi código en ThreeJS es algo como esto

 let textures = [ new THREE.TextureLoader().load(mask2), new THREE.TextureLoader().load(mask3), new THREE.TextureLoader().load(mask4), new THREE.TextureLoader().load(mask5), new THREE.TextureLoader().load(mask6), ] let next = 0; let prev = 0; window.addEventListener("mousewheel",(e) => { move += e.wheelDeltaY/1000; next = Math.floor(move + 1000) % 2; prev = ( Math.floor(move) + 1 + 1000) % 2; console.log(next,prev) material.uniforms.t1.value = textures[prev]; material.uniforms.t2.value = textures[next]; })

ACTUALIZAR:

 next = Math.floor(move + 1000) % textures.length; prev = ( Math.floor(move) + textures.length + 1000) % textures.length;

Tengo una respuesta ahora, pero quiero algo mejor que esto... porque quiero hacer específicamente la duración de sus movimientos... Si no puedo responder, está bien, gracias. por ejemplo, la longitud del desplazamiento debe ser 40 o algo más para que no cambie rápidamente.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda