Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

281
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda