Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

276
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!