3 votes

Comment faire pivoter un canevas entier dans react js avec react-three-fiber ?

J'ai suivi ce codrops tutoriel sur la façon de créer un site déroulant en utilisant react-three-fiber.

Je l'ai modifié en centrant tous les éléments et en supprimant l'effet de division RVB. J'aimerais maintenant faire pivoter l'ensemble de la zone de défilement/du canevas afin d'obtenir un effet de défilement en diagonale similaire à cette page . Est-il possible de faire pivoter la zone de défilement dans son ensemble ou dois-je faire pivoter chaque composant individuellement en utilisant mesh.rotate.z =... et ainsi de suite ?

Exemple complet Code

Le code qui rassemble tout :

function App() {
 const scrollArea = useRef()
 const onScroll = e => (state.top.current = e.target.scrollTop)
 useEffect(() => void onScroll({ target: scrollArea.current }), [])
 return (
 <>
  <Canvas className="canvas" concurrent pixelRatio={1} orthographic camera={{ zoom: 
    state.zoom, position: [0, 0, 500] }}>
    <Suspense fallback={<Dom center className="loading" children="Loading..." />}>
      <Content />
      <Startup />
    </Suspense>
  </Canvas>
  <div className="scrollArea" ref={scrollArea} onScroll={onScroll}>
    {new Array(state.sections).fill().map((_, index) => (
      <div key={index} id={"0" + index} style={{ height: `${(state.pages / 
      state.sections) * 47}vh` }} />//site length
    ))}
    </div>
    <div className="frame">
    <div className="frame__links">
      <a className="frame__link" href="http://tympanus.net/Tutorials/PhysicsMenu/">
        Work
      </a>
      <a className="frame__link" href="https://tympanus.net/codrops/?p=45441">
        About
      </a>
    </div>
  </div>

</>
)}

1voto

Lalaland124 Points 33

J'ai résolu le problème en plaçant mon contenu à l'intérieur d'un groupe que j'ai ensuite fait pivoter de la sorte :

 <group rotation-z={0.025} rotation-y={0.0} rotation-x={0.05}>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X