рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдореИрдВ
0px
рд╕реЗ
auto
рддрдХ рдХреА
height
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреНрд░рдордг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд╡реЗрдм рдШрдЯрдХ рдЯреНрд░реАрд╡реНрдпреВ рдФрд░ рдбреЗрдЯрд╛рдЧреНрд░рд┐рдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЯреНрд░реА рд╡реНрдпреВ рдореЗрдВ, рдореИрдВрдиреЗ рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕реБрдЧрдо рд╡рд┐рд╕реНрддрд╛рд░ / рдкрддрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ DataGrid рдореЗрдВ - рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБред рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдзрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ
max-height
рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ - рд╕рдВрдХреНрд░рдордг рдФрд░ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕рдПрд╕ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ,
max-height
рдмрдиреА рд╣реБрдИ рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЯреНрд░реА рд╡реНрдпреВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рдЕрд╕реАрдорд┐рдд рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рддреБрд░рдВрдд рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЕрдзрд┐рдХрддрдо рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк
max-height
рдХреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХреНрд░рдордг рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдКрдВрдЪрд╛рдИ рдмрдврд╝ рдЬрд╛рдПрдЧреА рдФрд░
max-height
рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ,
max-height
рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред DataGrid рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред
height:auto
рдЪрд╛рд╣рд┐рдП
height:auto
!
рддреЛ, рдЪрд▓реЛ рд╕рдВрдХреНрд░рдордг рдХреЛ
0px
рд╕реЗ
auto
рддрдХ рдХреА
height
рд╕рдВрдкрддреНрддрд┐ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдХрд░рддреЗ рд╣реИрдВ:
elBlock: HTMLDivElement
- elBlock: HTMLDivElement
/ рдзреНрд╡рд╕реНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд▓реЙрдХ;elToggle: HTMLButtonElement
- рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрдиред
рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рдПрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕рд╛рдордЧреНрд░реА рдХреА рдЯреНрд░рд┐рдорд┐рдВрдЧ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
.block { overflow: hidden; transition: height 500ms ease; }
рд╣рдо
elToggle
рд▓рд┐рдП
elToggle
рдЗрд╡реЗрдВрдЯ
onClick
рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
elToggle.addEventListener("click", () => { if (elBlock.style.height === "0px") { elBlock.style.height = `${ elBlock.scrollHeight }px` } else { elBlock.style.height = `${ elBlock.scrollHeight }px`; window.getComputedStyle(elBlock, null).getPropertyValue("height"); elBlock.style.height = "0"; } });
рдпрд╣ рд╡рд╛рдкрд╕реА
height:auto
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ
height:auto
рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рдж
height:auto
:
elBlock.addEventListener("transitionend", () => { if (elBlock.style.height !== "0px") { elBlock.style.height = "auto" } });
рдЦреИрд░, рдпрд╣ рд╕рдм, рдЕрдм рдмреНрд▓реЙрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ / рдкрддрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЪрд┐рддреНрд░ 1 - рдЯреНрд░реА рд╡реНрдпреВ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ / рдЯреВрдЯрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгрдпрд╣ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ:
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдореИрдВ рдХреЗрд╡рд▓ рд╕реАрдПрд╕рдПрд╕ рдЪрд╛рд╣реВрдВрдЧрд╛;
- рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди, рд╕рд╛рдордЧреНрд░реА (рдЗрд╕рдХреА рдКрдВрдЪрд╛рдИ,
scrollHeight
) рдмрджрд▓ рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ auto
рд▓реМрдЯрддрд╛ рд╣реИ, рддреЛ рдмреНрд▓реЙрдХ рдХреА рдКрдВрдЪрд╛рдИ рдПрдХ рджрд┐рд╢рд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧреАред рдЗрд╕ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ scrollHeight
рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдФрд░ height
рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ / рдкрддрди рдкреНрд░рддреНрдпреЗрдХ 0.5 s рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд░реА рд╡реНрдпреВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!