Sin embargo, tengo un elemento que está en posición: fijo y, por lo tanto, se desplaza con la página como quiero. cuando el usuario se desplaza hacia arriba, quiero que el elemento deje de desplazarse en un punto determinado, por ejemplo, cuando está a 250 px de la parte superior de la página, ¿es posible? Cualquier ayuda o consejo sería útil gracias!
Tenía la sensación de que necesitaría usar jquery para hacerlo. Intenté obtener el desplazamiento o la ubicación de la ubicación del usuario, pero me confundí mucho, ¿hay alguna solución de jquery?
jquery
css
positioning
Louise McComiskey
fuente
fuente
Respuestas:
Aquí hay un complemento rápido de jQuery que acabo de escribir que puede hacer lo que necesita:
Ver ejemplo de trabajo →
fuente
$('window')
no debería estar entre comillas. Pero gracias por esto, fue muy útil.¿Te refieres a algo así?
http://jsfiddle.net/b43hj/
Mostrar fragmento de código
fuente
bottom
y este valor calculado (compensado por 250) en el máximo.Aquí hay un complemento de jquery completo que resuelve este problema:
https://github.com/bigspotteddog/ScrollToFixed
La descripción de este complemento es la siguiente:
Este complemento se usa para fijar elementos en la parte superior de la página, si el elemento se hubiera desplazado fuera de la vista, verticalmente; sin embargo, permite que el elemento continúe moviéndose hacia la izquierda o hacia la derecha con el desplazamiento horizontal.
Dada una opción marginTop, el elemento dejará de moverse verticalmente hacia arriba una vez que el desplazamiento vertical haya alcanzado la posición de destino; pero, el elemento seguirá moviéndose horizontalmente mientras la página se desplaza hacia la izquierda o hacia la derecha. Una vez que la página se ha desplazado hacia abajo más allá de la posición de destino, el elemento se restaurará a su posición original en la página.
Este complemento ha sido probado en Firefox 3/4, Google Chrome 10/11, Safari 5 e Internet Explorer 8/9.
Uso para su caso particular:
fuente
Puede hacer lo que hizo James Montagne con su código en su respuesta, pero eso hará que parpadee en Chrome (probado en V19).
Puede solucionarlo si coloca "margin-top" en lugar de "top". Aunque realmente no sé por qué funciona con margen.
http://jsbin.com/idacel
fuente
Una posible solución SÓLO CSS se puede lograr con
position: sticky;
El soporte del navegador es realmente bueno: https://caniuse.com/#search=position%3A%20sticky
aquí hay un ejemplo: https://jsfiddle.net/0vcoa43L/7/
fuente
mi solución
fuente
En un proyecto, en realidad tengo un encabezado fijo en la parte inferior de la pantalla al cargar la página (es una aplicación de dibujo, por lo que el encabezado está en la parte inferior para dar el máximo espacio al elemento de lienzo en la ventana de visualización ancha).
Necesitaba que el encabezado se convirtiera en 'absoluto' cuando llega al pie de página en el desplazamiento, ya que no quiero que el encabezado esté sobre el pie de página (el color del encabezado es el mismo que el color de fondo del pie de página).
Tomé la respuesta más antigua aquí (editada por Gearge Millo) y ese fragmento de código funcionó para mi caso de uso. Con un poco de juego conseguí que esto funcionara. Ahora, el encabezado fijo se coloca maravillosamente sobre el pie de página una vez que llega al pie de página.
Solo pensé en compartir mi caso de uso y cómo funcionó, ¡y agradecerle! La aplicación: http://joefalconer.com/web_projects/drawingapp/index.html
fuente
Escribí una publicación de blog sobre esto que presentaba esta función:
fuente
Una solución que utiliza Mootools Framework.
http://mootools.net/docs/more/Fx/Fx.Scroll
Obtenga la posición (x & y) del elemento donde desea detener el desplazamiento usando $ ('myElement'). GetPosition (). X
$ ('myElement'). getPosition (). y
Para una especie de animación de desplazamiento, use:
new Fx.Scroll ('scrollDivId', {desplazamiento: {x: 24, y: 432}}). toTop ();
Para configurar el desplazamiento inmediatamente, use:
new Fx.Scroll (myElement) .set (x, y);
Espero que esto ayude !! :RE
fuente
Me gustó esta solución
mi problema fue que tuve que lidiar con un contenedor relativo a la posición en Adobe Muse.
Mi solución:
fuente
Código mVChr simplemente improvisado
fuente
$(this)
y$(window)
en variables es para que solo tenga que hacer$this.height()
y así sucesivamente. En lugar de establecer una posición superior, ¿no sería mejor si el complemento almacenara el valor superior original y volviera a él al establecer un ancho fijo? Además, ¿qué quieres decir conJust improvised mVChr code
?Adapté la respuesta de @ mVchr y la invertí para usarla para el posicionamiento de anuncios fijos: si lo necesita absolutamente posicionado (desplazándose) hasta que la basura del encabezado esté fuera de la pantalla, pero luego lo necesita para permanecer fijo / visible en la pantalla después de eso:
CSS:
fuente
Me encantó la respuesta de @james, pero estaba buscando su inversa, es decir, detener la posición fija justo antes del pie de página, esto es lo que se me ocurrió
Así que ahora el elemento fijo se detendría justo antes del pie de página. y no se superpondrá con él.
fuente