Marcos de desplazamiento

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Una ScrollingFrame consiste en un lienzo personalizable y barras de desplazamiento con interactividad de desplazamiento incorporada y diferentes formas de personalizar cómo funciona el desplazamiento. ScrollingFrame es ideal para mostrar mucha información en un espacio reducido y funciona bien con diseños de lista y rejilla.

Ejemplo de ScrollingFrame en la pantalla que contiene una barra de categorías con pestañas y una lista de objetos mágicos que el jugador puede considerar comprar.

Lienzo

El lienzo es el área principal de un ScrollingFrame que puede contener otros GuiObjects. El comportamiento de desplazamiento se adapta automáticamente en los siguientes escenarios:

Configuración del marcoResultado
El CanvasSize del marco es más alto que su altura total; específicamente, el total de CanvasSize.Y excede el total de Size.Y.El desplazamiento vertical está habilitado y aparece una barra de desplazamiento vertical.
El CanvasSize del marco es más ancho que su ancho total; específicamente, el total de CanvasSize.X excede el total de Size.X.El desplazamiento horizontal está habilitado y aparece una barra de desplazamiento horizontal.
El AutomaticCanvasSize del marco está configurado en Y o XY y la altura total de su contenido (hijos GuiObjects) excede su total Size.Y.El desplazamiento vertical está habilitado y aparece una barra de desplazamiento vertical.
El AutomaticCanvasSize del marco está configurado en X o XY y el ancho total de su contenido (hijos GuiObjects) excede su total Size.X.El desplazamiento horizontal está habilitado y aparece una barra de desplazamiento horizontal.

La propiedad CanvasPosition refleja el desplazamiento posicional actual del lienzo dentro del marco, en píxeles, y establece la posición de las barras de desplazamiento en consecuencia. Ten en cuenta que esta propiedad no hace nada si las barras de desplazamiento no son visibles.

Márgenes

El CanvasSize de un marco de desplazamiento puede verse afectado por las propiedades VerticalScrollBarInset y/o HorizontalScrollBarInset. En el siguiente diagrama de ejemplo, un marco de desplazamiento vertical utiliza un ancho de lienzo del 100%. Con VerticalScrollBarInset configurado en None (predeterminado), el lienzo se extiende hasta el ancho completo del marco de desplazamiento, oscureciendo una pequeña cantidad de contenido bajo la barra de desplazamiento. En contraste, una configuración de VerticalScrollBarInset de Always o ScrollBar inserta el lienzo por la cantidad de ScrollBarThickness para que el lienzo se encuentre borde a borde con la barra de desplazamiento.

Barras de desplazamiento

Las barras de desplazamiento del marco reflejan la posición actual del lienzo y proporcionan interactividad automática de arrastre para desplazarse. Para las barras de desplazamiento verticales, la propiedad VerticalScrollBarPosition cambia la posición de la barra a la izquierda o derecha del lienzo, pero las barras de desplazamiento horizontales solo pueden posicionarse debajo del lienzo.

La construcción de la barra de desplazamiento consiste en tres propiedades de activos:

  • TopImage — Se muestra en la parte superior de una barra de desplazamiento vertical, o a la izquierda de una barra de desplazamiento horizontal (rotada 90° en sentido antihorario para una barra de desplazamiento horizontal).
  • MidImage — Se extiende por el área entre TopImage y BottomImage (rotada 90° en sentido antihorario para una barra de desplazamiento horizontal).
  • BottomImage — Se muestra en la parte inferior de una barra de desplazamiento vertical, o a la derecha de una barra de desplazamiento horizontal (rotada 90° en sentido antihorario para una barra de desplazamiento horizontal).
Diagrama que muestra los tres elementos de activos de imagen que construyen la barra de desplazamiento de un marco de desplazamiento.

Cada imagen se escala según la propiedad ScrollBarThickness que cambia el ancho de una barra de desplazamiento vertical o la altura de una barra de desplazamiento horizontal.

Se pueden realizar modificaciones visuales adicionales a través de las propiedades ScrollBarImageColor3 y ScrollBarImageTransparency que tiñen los activos de imagen de la barra y modifican su opacidad, respectivamente.

Recorte

Por defecto, los contenedores de GuiObject recortan su contenido (descendientes de GuiObjects) a través del booleano ClipsDescendants. Si deseas que los descendientes aparezcan fuera de los límites de un contenedor, simplemente establece ClipsDescendants en false.

Es importante tener en cuenta que StarterGui.ClipsDescendantsSupportsRotation debe ser true para que el recorte funcione en los descendientes rotados (no cero Rotation) dentro del contenedor. Sin embargo, el recorte por un contenedor rotado (el contenedor de recorte en sí está rotado) o por esquinas redondeadas (UICorner) no está soportado. Si necesitas recortes en contenedores rotados o redondeados, considera CanvasGroup.

Elasticidad

Por defecto, los ScrollingFrames exhiben un comportamiento de desplazamiento elástico en dispositivos habilitados para táctil, lo que significa que los usuarios pueden arrastrar el lienzo un poco más allá de sus límites y, al soltar, el lienzo volverá a su límite mínimo o máximo. Si deseas eliminar completamente el comportamiento elástico y asegurarte de que el lienzo nunca se desplace más allá de sus límites, establece la propiedad ElasticBehavior en Never.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.