Estoy trabajando en un proyecto de Clojure, usando clojure, clojurescript, re-frame y reactivo. Hay un botón que quiero cuando se hace clic en él, el usuario salta a la etiqueta de imagen relacionada desplazándose. Hay muchos botones que cada botón debe desplazar la pantalla a la imagen de destino.
Como soy nuevo en el mundo de clojure, no sé cómo implementar el script js en el proyecto. Creé un botón en el archivo views.cljs con envío a los eventos. Pero, ¿dónde debo implementar la parte js? Como descubrí, debe estar en el archivo events.cljs, pero si es correcto, no sé cómo implementarlo.
Por favor, ayúdame con este código. ¿Cómo debería verse el código js cuando se implementará en clojurescript? Gracias de antemano.
En vistas.cljs:
[:botón {:al hacer clic en #(rf/despacho [::eventos/img-uno])}]
Probablemente esté buscando Element.scrollIntoView() . Tampoco creo que tengas que modificar events.cljs , solo agrega este código en views.cljs (también agregué algunas imágenes para probar):
[:button {:on-click #(.scrollIntoView (.getElementById js/document "id3"))} "Click me"] [:div [:div [:img#id1 {:src "" :style {:width 600 :height 1000 :background "red"}}]] [:div [:img#id2 {:src "" :style {:width 600 :height 1000 :background "pink"}}]] [:div [:img#id3 {:src "" :style {:width 600 :height 1000 :background "yellow"}}]]Con el comportamiento del argumento, el desplazamiento puede ser fluido:
[:button {:on-click #(.scrollIntoView (.getElementById js/document "id3") (js-obj "behavior" "smooth"))} "Click me"]