Estoy tratando de crear un botón que se desplace a un elemento en particular que se encuentra más abajo en la página. Me las arreglé para crear una función que me permite desplazarme hasta el desplazamiento superior del elemento de esta manera:
const scrollToIntro = () => { const viewPortOffSet = window.document .getElementById("introduction") .getBoundingClientRect(); window.scrollTo({ top: viewPortOffSet.top + window.scrollY, behavior: "smooth", }); };Sin embargo, me parece que desplazarse hacia la parte superior es demasiado en el sentido de que se ha desplazado demasiado hacia abajo y me gustaría restar algún valor de la parte superior en relación con la ventana gráfica . Una forma que he encontrado es multiplicar el número por un factor como este:
const scrollToIntro = () => { const viewPortOffSet = window.document .getElementById("introduction") .getBoundingClientRect(); window.scrollTo({ top: viewPortOffSet.top * 0.95 + window.scrollY, behavior: "smooth", }); };Pero me pregunto si hay alternativas que tal vez puedan implicar la resta de valores usando "vh", etc.