Tengo un código que normalmente se comporta pero quiero implementar el desplazamiento de impulso. Para que el desplazamiento de impulso funcione, necesito fijar la posición en la etiqueta del cuerpo. Eso no es problema. El problema se da en diferentes elementos con posicionamiento absoluto y rejillas flexibles.
¿Conoces alguna forma en la que pueda omitir el posicionamiento fijo?
Estoy usando la biblioteca butter.js para implementar el desplazamiento de impulso, pero probé con este codepen y da el mismo resultado
const body = document.body; const main = document.getElementById('main'); let sx = 0, // For scroll positions sy = 0; let dx = sx, // For container positions dy = sy; body.style.height = main.clientHeight + 'px'; main.style.position = 'fixed'; main.style.top = 0; main.style.left = 0; // Bind a scroll function window.addEventListener('scroll', easeScroll); function easeScroll() { sx = window.pageXOffset; sy = window.pageYOffset; } window.requestAnimationFrame(render); function render(){ //We calculate our container position by linear interpolation method dx = li(dx,sx,0.07); dy = li(dy,sy,0.07); dx = Math.floor(dx * 100) / 100; dy = Math.floor(dy * 100) / 100; main.style.transform = `translate3d(-${dx}px, -${dy}px, 0px)`; window.requestAnimationFrame(render); } function li(a, b, n) { return (1 - n) * a + n * b; }Como dije, no es un problema con un código o la forma en que se escribe. No me da error al manipularlo. Pero esto
main.style.position = 'fixed';es el problema. Intento conectarme a una etiqueta de cuerpo pero sigue siendo el mismo problema
Enlace a un pergamino de impulso de codepen
Intente cambiar el ancho del elemento 'principal'. Por lo general, están codificados para que se ajusten solo a los elementos, no a la pantalla.