Contención de elemento secundario de jQuery Draggable
Estoy utilizando la biblioteca jQuery-ui para arrastrar una imagen/hijo dentro de un contenedor padre. En teoría, estoy tratando de replicar los límites de una página web en un navegador. Quiero:
- Si el borde inferior del hijo alcanza el borde inferior del padre, quiero evitar arrastrar más hacia arriba en el eje y.
- Si el borde superior del hijo alcanza el borde superior del padre (que es la posición inicial al cargar la página), evitar arrastrar hacia abajo en el eje y.
Un CodePen rápido para ayudar a ilustrar dónde estoy: https://codepen.io/austin-branham/full/eYGgoNg
Mi script:
var draggableHeight = $('.draggable').height();
var parentHeight = $('.project-image').height();
$('.draggable').draggable({
axis: 'y',
drag: function(e, ui) {
// averiguar qué tan lejos arrastrar dentro de esta función
}
});
davy.ai
Para evitar que el elemento hijo sea arrastrado más allá de los límites del contenedor padre, podemos modificar la función
drag
en nuestro código de jQuery. Aquí están los pasos:drag
para incluir la lógica anterior.Aquí está el código modificado:
Esto debería permitir replicar los límites de una página web en un navegador y evitar que el elemento hijo se pueda arrastrar fuera de su contenedor padre.